呼叫樹狀圖檢視 - 程式碼剖析工具:.NET 記憶體檢測資料
使用檢測方法收集之 .NET 記憶體配置程式碼剖析資料的 [呼叫樹狀圖] 檢視,會顯示周遊於程式碼剖析的應用程式中之函式執行路徑。 樹狀圖的根是應用程式或元件的進入點。 每個函式節點會列出它呼叫的所有函式,以及函式的 .NET 記憶體及時間資料。
呼叫樹狀圖檢視中的值適用於呼叫樹狀圖中父函式所呼叫的函式執行個體。 比較函式執行個體值和執行程式碼剖析期間配置的總數或大小,即可計算百分比值。
反白顯示執行的最忙碌路徑
[呼叫樹狀圖] 檢視可以展開和反白顯示建立最大或最多記憶體物件之處理序或函式的執行路徑。 若要顯示活動最頻繁的路徑,請以滑鼠右鍵按一下該處理序或函式,然後按一下 [展開最忙碌路徑]。
設定呼叫樹狀圖根節點
程式碼剖析執行中的每個處理序都會顯示成一個根節點。 您可以在要設成開始節點的節點上,以滑鼠右鍵按一下,然後選取 [設定根目錄],以設定 [呼叫樹狀圖] 檢視的開始節點。
設定根節點時,除了選取之節點的樹狀子目錄以外,請從檢視中排除所有其他的項目。 您可以將根節點重設為先前檢視的節點,方法是以滑鼠右鍵按一下 [呼叫樹狀圖] 檢視視窗,然後選取 [重設根目錄]。
一般
資料行 |
描述 |
---|---|
函式名稱 |
函式的名稱。 |
函式位址 |
函式的位址。 |
函式行號 |
在原始程式檔中這個函式的開頭行號。 |
呼叫次數 |
對這個函式的總呼叫次數。 |
原始程式檔 |
包含這個函式定義的原始程式檔。 |
模組名稱 |
包含該函式的模組名稱。 |
模組路徑 |
包含該函式的模組路徑。 |
處理序 ID |
執行程式碼剖析期間的處理序 ID (PID)。 |
處理序名稱 |
指派給處理序的名稱。 |
時間專有探查額外負荷 |
檢測對這個函式造成的時間額外負荷。 已經從所有專有時間減去探查額外負荷。 |
時間內含探查額外負荷 |
檢測對這個函式及其子函式所造成的時間額外負荷。 已經從所有內含時間減去探查額外負荷。 |
型別 |
函式的內容:
只存在於 VSPerfReport 命令列報告中。 |
根函式名稱 |
目前函式的名稱。 只存在於 VSPerfReport 命令列報告中。 |
.NET 記憶體值
函式的內含 .NET 記憶體值,表示函式及其呼叫的函式所建立物件的數目 (配置) 和大小 (位元組)。
專有記憶體值,表示函式主體中程式碼所建立之物件的數目和大小,而不是由函式所呼叫之函式所建立。
資料行 |
描述 |
---|---|
內含配置 |
這個函式之執行個體所配置的物件數目,此函式是由呼叫樹狀圖中的父函式所呼叫。 此數目包含子函式已進行的配置。 |
內含配置 % |
在執行程式碼剖析期間建立之所有物件的百分比,這是在呼叫樹狀圖中父函式所呼叫之函式執行個體的內含配置。 |
專有配置 |
這個函式之執行個體所配置的物件數目,此函式是由呼叫樹狀圖中的父函式所呼叫。 此數目不包含子函式已進行的配置。 |
專有配置 % |
在執行程式碼剖析期間建立之所有物件的百分比,這些物件是呼叫樹狀圖中父函式所呼叫之函式執行個體的專有配置。 |
整體內含值
整體內含值表示函式在呼叫堆疊上的時間。 這個時間包括了花在被該函式呼叫之函式的時間,以及呼叫作業系統的時間,例如 Context Switches 和輸入/輸出作業。
資料行 |
描述 |
---|---|
整體內含時間 |
在呼叫樹狀圖中,由父函式所呼叫之這個函式的所有呼叫的整體內含時間總計。 |
整體內含時間百分比 |
執行程式碼剖析期間的整體內含時間總計百分比,這是當呼叫樹狀圖中的父函式呼叫這個函式時,所花的整體內含時間總計。 |
平均整體內含時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之所有呼叫的整體內含時間平均。 |
最大整體內含時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最大整體內含時間。 |
最小整體內含時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最小整體內含時間。 |
整體專有值
整體專有值表示函式在呼叫堆疊頂端直接執行的時間。 此時間包含花費在呼叫作業系統 (例如環境切換和輸入/輸出作業) 的時間。 但是,此時間不包括花費在函式所呼叫之函式中的時間。
資料行 |
描述 |
---|---|
整體專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之所有呼叫的整體專有時間總計。 |
整體專有時間百分比 |
執行程式碼剖析期間的整體專有時間總計百分比,這是當呼叫樹狀圖中的父函式呼叫這個函式時,所花的整體專有時間總計。 |
平均整體專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的整體專有時間平均。 |
最大整體專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最大整體專有時間。 |
最小整體專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最小整體專有時間。 |
應用內含值
應用內含值表示函式在呼叫堆疊上的時間。 此時間不包含花費在呼叫作業系統 (例如環境切換和輸入/輸出作業) 的時間。 此時間則包括花費在函式所呼叫之子函式中的時間。
資料行 |
描述 |
---|---|
應用內含 (Application Inclusive) 時間 |
在呼叫樹狀圖中,父函式所呼叫這個函式之所有呼叫的整體應用內含時間總計。 |
應用內含 (Application Inclusive) 時間百分比 |
執行程式碼剖析期間的整體內含時間總計百分比,這是當呼叫樹狀圖中的父函式呼叫這個函式時,所花的應用內含時間總計。 |
平均應用內含時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的平均應用內含時間。 |
最大應用內含時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最大應用內含時間。 |
最小應用內含時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最小應用內含時間。 |
應用專有值
應用專有 (Application Exclusive) 值表示已花費在函式中的時間,不包括花費在該函式所呼叫之子函式的時間。 此時間也不包含呼叫作業系統 (例如環境切換和輸入/輸出作業) 的時間。
資料行 |
描述 |
---|---|
應用專有 (Application Exclusive) 時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之所有呼叫的整體應用專有時間總計。 |
應用專有 (Application Exclusive) 時間百分心 |
執行程式碼剖析期間的整體專有時間總計百分比,這是當呼叫樹狀圖中的父函式呼叫函式時,所花的應用專有時間總計。 |
平均應用專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的平均應用專有時間。 |
最大應用專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最大應用專有時間。 |
最小應用專有時間 |
在呼叫樹狀圖中,由父函式所呼叫這個函式之呼叫的最小應用專有時間。 |