參考: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.exe 或 link.exe ,以及唯一的數值調用識別碼。 如果適用,它會在調用期間包含編譯或連結之元件的完整路徑。 對於未建置任何元件的調用,或針對建置多個元件的調用,路徑是空白的。 調用識別碼與 InvocationId 資料行中的識別碼相同。 |
InvocationId | 發生此事件之調用的唯一數值識別碼。 |
名稱 | 此事件所代表的活動或屬性名稱。 |
Time | 時間戳記,識別事件發生的時間。 |
工具 | 發生此事件時執行的工具。 此資料行的值為 CL 或 Link。 |
類型 | 目前事件的型別。 此值為 Activity 或 Property。 |
值 | 如果目前事件是屬性,則此資料行會包含其值。 當目前事件為活動時,此資料行會保留空白。 |
組建總管檢視預設值
預設名稱 | 慣用檢視模式 | 如何使用 |
---|---|---|
活動統計資料 | Graph / Table | 使用此預設檢視所有組建總管活動的匯總統計資料。 在資料表模式中,一目了然地指出您的組建是否以剖析、程式碼產生或連結器為主。 每個活動的匯總持續時間會依遞減順序排序。 藉由展開頂端節點,輕鬆找出這些最上層活動需要最多時間的叫用。 如果您想要,您可以調整 WPA 設定以顯示平均值或其他匯總類型。 在圖表模式中,請參閱建置期間每個活動何時處於作用中狀態。 |
調用 | 圖表 | 向下捲動圖表檢視中依開始時間排序的調用清單。 您可以將它與 CPU (Sampled) 檢視一起使用,以尋找符合低 CPU 使用率區域的調用。 偵測平行處理原則問題。 |
調用屬性 | Table | 快速尋找指定編譯器或連結器調用的重要資訊。 判斷其版本、工作目錄,或用來叫用它的完整命令列。 |
時間表 | 圖表 | 查看如何平行處理組建的橫條圖。 一目了然地找出平行處理原則問題和瓶頸。 設定 WPA,根據您的需求將不同的意義指派給橫條。 選擇調用描述作為最後一個群組資料行,以檢視所有調用的色彩編碼橫條圖。 它可協助您快速識別耗時的罪犯。 然後,放大並選擇活動名稱作為最後一個群組資料行,以查看最長的部分。 |
Files
[檔案] 檢視可用來:
- 判斷最常包含哪些標頭,以及
- 協助您決定要在預先編譯的標頭中納入哪些專案(PCH)。
檔案檢視資料行
資料行名稱 | 描述 |
---|---|
ActivityName | 發出此檔案事件時進行中的活動。 目前,此值一律 為剖析 。 |
BuildTimelineDescription | * |
BuildTimelineId | * |
元件 | * |
計數 | * |
深度 | 包含樹狀結構中以零起始的位置,在此樹狀目錄中找到這個檔案。 計數從 include 樹狀結構的根目錄開始。 值 0 通常對應至 .c/.cpp 檔案。 |
ExclusiveDuration | * |
IncludedBy | 包含目前檔案之檔案的完整路徑。 |
IncludedPath | 目前檔案的完整路徑。 |
InclusiveDuration | * |
InvocationId | * |
StartTime | 時間戳記,表示發出目前檔案事件的時間。 |
工具 | * |
* 此資料行的值與 [ 建置總 管] 檢視中的值相同。
檔案檢視預設值
預設名稱 | 慣用檢視模式 | 如何使用 |
---|---|---|
統計資料 | Table | 查看以遞減順序查看清單,以查看哪些檔案具有最高的匯總剖析時間。 使用這項資訊可協助您重新建構標頭,或決定要包含在 PCH 中的內容。 |
函式
Functions 檢視可用來識別程式碼產生時間過長之函式。
函式檢視資料行
資料行名稱 | 描述 |
---|---|
ActivityName | 發出此函式事件時進行中的活動。 目前,此值一律 為 CodeGeneration 。 |
BuildTimelineDescription | * |
BuildTimelineId | * |
元件 | * |
計數 | * |
期間 | 此函式的程式碼產生活動持續時間。 |
函數名稱 | 正在產生程式碼的函式名稱。 |
InvocationId | * |
StartTime | 時間戳記,表示發出目前函式事件時的時間戳記。 |
工具 | * |
* 此資料行的值與 [ 建置總 管] 檢視中的值相同。
函式檢視預設值
預設名稱 | 慣用檢視模式 | 如何使用 |
---|---|---|
統計資料 | Table | 查看以遞減順序查看清單,以查看哪些函式具有最高的匯總程式碼產生時間。 它們可能會提示您的程式碼過度使用 __forceinline 關鍵字的位置,或某些函式可能太大。 |
時間表 | 圖表 | 查看此橫條圖,以瞭解需要最多時間產生之函式的位置和持續時間。 查看它們是否符合 [建置總管] 檢視中的瓶頸。 如果這樣做,請採取適當的動作來減少其程式碼產生時間,並讓您的建置時間受益。 |
另請參閱
開始使用 C++ Build Insights
參考:vcperf 命令
教學課程:Windows 效能分析器基本概念
Windows Performance Analyzer