共用方式為


參考:Windows 效能分析器 檢視

C++ Build Insights 工具可在 Visual Studio 2019 和更新版本中取得。 若要查看此版本的文件,請將本文的 Visual Studio 版本 選取器控制項設定為 Visual Studio 2019 或更新版本。 其位於此頁面目錄頂端。

本文提供 Windows 效能分析器 (WPA) 中可用之每個 C++ Build Insights 檢視的詳細數據。 使用此頁面來尋找:

  • 數據行描述;和
  • 每個檢視的可用預設值,包括其預定用途和慣用的檢視模式。

如果您不熟悉 WPA,建議您先熟悉 適用於 C++ Build Insights 的 WPA 基本概念

組建總管

[建置總管] 檢視可用來:

  • 診斷平行處理原則問題,
  • 判斷您的建置時間是否以剖析、程式代碼產生或連結為主,以及
  • 識別瓶頸和異常長的建置活動。

建置總管檢視數據行

資料行名稱 描述
BuildTimelineDescription 目前活動或屬性發生的時程表文字描述。
BuildTimelineId 目前活動或屬性發生時間軸之以零起始的標識碼。
元件 當發出目前事件時,正在編譯或連結的元件。 當沒有任何元件與此事件相關聯時,此數據行的值是 <調用 X 資訊> 。 X 是發出事件時所執行調用的唯一數值標識碼。 此標識碼與此事件之 InvocationId 數據行中的標識碼相同。
計數 此數據列所代表的活動或屬性數目。 此值一律為 1,而且只有在將多個數據列分組時,才會在匯總案例中使用。
ExclusiveCPUTime 此活動所使用的 CPU 時間以毫秒為單位。 在子活動中花費的時間不包含在此數量中。
ExclusiveDuration 活動的毫秒持續時間。 子活動的持續時間不包含在此數量中。
InclusiveCPUTime 此活動與所有子活動所使用的CPU時間,以毫秒為單位。
InclusiveDuration 此活動的毫秒持續時間,包括所有子活動。
InvocationDescription 發生此事件之調用的文字描述。 描述包含cl.exelink.exe,以及唯一的數值調用標識符。 如果適用,它會在調用期間包含編譯或連結之元件的完整路徑。 對於未建置任何元件的調用,或針對建置多個元件的調用,路徑是空白的。 調用標識碼與 InvocationId 數據行中的識別碼相同。
InvocationId 發生此事件之調用的唯一數值標識碼。
名稱 此事件所代表的活動或屬性名稱。
Time 時間戳,識別事件發生的時間。
工具 發生此事件時執行的工具。 此數據行的值為 CL 或 Link。
類型 目前事件的型別。 此值為 Activity 或 Property。
如果目前事件是屬性,則此數據行會包含其值。 當目前事件為活動時,此數據行會保留空白。

組建總管檢視預設值

默認名稱 慣用檢視模式 如何使用
活動統計數據 Graph / Table 使用此預設檢視所有組建總管活動的匯總統計數據。 在數據表模式中,一目了然地指出您的組建是否以剖析、程式代碼產生或鏈接器為主。 每個活動的匯總持續時間會依遞減順序排序。 藉由展開頂端節點,輕鬆找出這些最上層活動需要最多時間的叫用。 如果您想要,您可以調整 WPA 設定以顯示平均值或其他匯總類型。 在圖表模式中,請參閱建置期間每個活動何時處於作用中狀態。
調用 圖表 向下卷動圖表檢視中依開始時間排序的調用清單。 您可以將它與 CPU (Sampled) 檢視一起使用,以尋找符合低 CPU 使用率區域的調用。 偵測平行處理原則問題。
調用屬性 Table 快速尋找指定編譯程式或鏈接器調用的重要資訊。 判斷其版本、工作目錄,或用來叫用它的完整命令行。
時間表 圖表 查看如何平行處理組建的條形圖。 一目了然地找出平行處理原則問題和瓶頸。 設定WPA,根據您的需求將不同的意義指派給橫條。 選擇調用描述作為最後一個群組數據行,以檢視所有調用的色彩編碼條形圖。 它可協助您快速識別耗時的罪犯。 然後,放大並選擇活動名稱作為最後一個群組數據行,以查看最長的部分。

檔案

[檔案] 檢視可用來:

  • 判斷最常包含哪些標頭,以及
  • 協助您決定要在預先編譯的標頭中納入哪些專案(PCH)。

檔案檢視數據行

資料行名稱 描述
ActivityName 發出此檔案事件時進行中的活動。 目前,此值一律 為剖析
BuildTimelineDescription *
BuildTimelineId *
元件 *
計數 *
深度 包含樹狀結構中以零起始的位置,在此樹狀目錄中找到這個檔案。 計數從 include 樹狀結構的根目錄開始。 值 0 通常對應至 .c/.cpp 檔案。
ExclusiveDuration *
IncludedBy 包含目前檔案之檔案的完整路徑。
IncludedPath 目前檔案的完整路徑。
InclusiveDuration *
InvocationId *
StartTime 時間戳,表示發出目前檔案事件的時間。
工具 *

* 此資料行的值與 [ 建置總 管] 檢視中的值相同。

檔案檢視預設值

默認名稱 慣用檢視模式 如何使用
統計資料 Table 查看以遞減順序查看清單,以查看哪些檔案具有最高的匯總剖析時間。 使用這項資訊可協助您重新建構標頭,或決定要包含在 PCH 中的內容。

函式

Functions 檢視可用來識別程式代碼產生時間過長之函式。

函式檢視數據行

資料行名稱 描述
ActivityName 發出此函式事件時進行中的活動。 目前,此值一律 為 CodeGeneration
BuildTimelineDescription *
BuildTimelineId *
元件 *
計數 *
期間 此函式的程式代碼產生活動持續時間。
FunctionName 正在產生程式代碼的函式名稱。
InvocationId *
StartTime 時間戳,表示發出目前函式事件時的時間戳。
工具 *

* 此資料行的值與 [ 建置總 管] 檢視中的值相同。

函式檢視預設值

默認名稱 慣用檢視模式 如何使用
統計資料 Table 查看以遞減順序查看清單,以查看哪些函式具有最高的匯總程式代碼產生時間。 它們可能會提示您的程式代碼過度使用 __forceinline 關鍵詞的位置,或某些函式可能太大。
時間表 圖表 查看此條形圖,以瞭解需要最多時間產生之函式的位置和持續時間。 查看它們是否符合 [建置總管] 檢視中的瓶頸。 如果這樣做,請採取適當的動作來減少其程式代碼產生時間,並讓您的建置時間受益。

另請參閱

開始使用 C++ Build Insights
參考:vcperf 命令
教學課程:Windows 效能分析器 基本概念
Windows Performance Analyzer