使用 Flame Graph 識別最忙碌路徑 (C#、Visual Basic、C++、F#)
適用於 CPU 使用率和檢測的 Visual Studio 分析工具包括 Flame Graph 檢視。 Flame Graph 可藉由顯示呼叫樹狀結構的視覺效果,協助您識別程式代碼中的熱路徑。 經常 性路徑 是使用最多 CPU 或最多時間之函式的呼叫堆疊,而且通常是尋找潛在效能優化的好位置。 此圖表提供應用程式中所花費時間的視覺概觀,您可以按一下特定節點以進一步深入探索這些節點。
如需示範如何使用 Flame Graph 來改善效能的教學課程,請參閱案例研究:最佳化程式碼的初學者指南。 如需 CPU 分析工具的資訊,請參閱使用 CPU 分析來分析效能。
調查最忙碌路徑
Flame Graph 檢視位於 .diagession 報表的詳細數據檢視中。
停止分析會話並載入報表之後,請選取 [ 開啟詳細數據]。
在 [目前檢視] 下拉式清單中選取 [Flame Graph]。
[Flame Graph] 檢視隨即出現。
經常性路徑是使用最多 CPU 或最多時間的程式代碼路徑,當您向下查看呼叫樹狀結構時。
根據預設,在 Flame Graph 中顯示的數據代表與數據收集週期的 [呼叫樹視圖] 中顯示的相同數據。 具體而言,針對 CPU 使用量,它會顯示 [CPU 總計] 值。 這個值是內含的,因此它包含呼叫函式所使用的CPU使用率(也就是CPU計算時間),以及函式所呼叫的任何其他函式。 同樣地,針對檢測,圖表會顯示相當於 呼叫樹視圖中 [總計 ] 數據行的值。
不過,如果您選取節點,選取的節點會變成新的基準,並使用 100% 的火焰圖形寬度。 這可讓您在截斷或隱藏名稱時,將複雜的呼叫樹狀結構可視化,並檢視長名稱。 以下是火焰圖的範例,其中顯示更複雜的呼叫樹狀結構。
若要檢視任何節點的詳細數據,請選取節點。
選擇 [ 重設縮放 ] 以返回預設檢視。
您也可以選取節點,然後從操作功能表選擇 [ 在呼叫樹 狀結構中檢視] 之類的選項,以巡覽至分析報表中的不同檢視。
翻轉火焰圖形
根據預設,工具中的火焰圖會顯示為向上或 柱形圖,其中 Y 軸會從頂端的零向下計算堆疊深度。
您可以按兩下 [翻轉火焰圖] 來檢視標準火焰圖版面配置。
在 Flame Graph 中瀏覽
針對複雜的 Flame Graph,您可以選取特定元素來縮放視覺效果。
在 [Flame Graph] 檢視中,您可以按一下具有滑鼠的節點或使用鍵盤來瀏覽。 此外,支援下列鍵盤快速鍵。
鍵盤快速鍵 | Command |
---|---|
索引標籤 | 移至任何節點 |
向上鍵/向下鍵 | 移至節點的父系或子系 |
向右鍵/向左鍵 | 移至堆疊上節點的對等節點 |
Enter | 放大 (選取) |
Esc | 縮小 |