共用方式為


使用 Flame Graph 識別最忙碌路徑 (C#、Visual Basic、C++、F#)

適用於 CPU 使用率和檢測的 Visual Studio 分析工具包括 Flame Graph 檢視。 Flame Graph 可藉由顯示呼叫樹狀結構的視覺效果,協助您識別程式代碼中的熱路徑。 經常 性路徑 是使用最多 CPU 或最多時間之函式的呼叫堆疊,而且通常是尋找潛在效能優化的好位置。 此圖表提供應用程式中所花費時間的視覺概觀,您可以按一下特定節點以進一步深入探索這些節點。

顯示 Flame Graph 的螢幕快照,其中顯示快捷功能表。

如需示範如何使用 Flame Graph 來改善效能的教學課程,請參閱案例研究:最佳化程式碼的初學者指南。 如需 CPU 分析工具的資訊,請參閱使用 CPU 分析來分析效能

調查最忙碌路徑

Flame Graph 檢視位於 .diagession 報表的詳細數據檢視中。

  1. 使用 CPU 使用量或檢測工具啟動分析工作階段

  2. 停止分析會話並載入報表之後,請選取 [ 開啟詳細數據]。

    顯示已選取 [開啟詳細數據] 的螢幕快照。

  3. 在 [目前檢視] 下拉式清單中選取 [Flame Graph]

    顯示已選取 [Flame Graph] 檢視的螢幕擷取畫面。

    [Flame Graph] 檢視隨即出現。

    顯示 [Flame Graph] 概觀的螢幕擷取畫面。

    經常性路徑是使用最多 CPU 或最多時間的程式代碼路徑,當您向下查看呼叫樹狀結構時。

    根據預設,在 Flame Graph 中顯示的數據代表與數據收集週期的 [呼叫樹視圖] 中顯示的相同數據。 具體而言,針對 CPU 使用量,它會顯示 [CPU 總計] 值。 這個值是內含的,因此它包含呼叫函式所使用的CPU使用率(也就是CPU計算時間),以及函式所呼叫的任何其他函式。 同樣地,針對檢測,圖表會顯示相當於 呼叫樹視圖中 [總計 ] 數據行的值。

    不過,如果您選取節點,選取的節點會變成新的基準,並使用 100% 的火焰圖形寬度。 這可讓您在截斷或隱藏名稱時,將複雜的呼叫樹狀結構可視化,並檢視長名稱。 以下是火焰圖的範例,其中顯示更複雜的呼叫樹狀結構。

    顯示複雜呼叫樹狀結構的 Flame Graph 螢幕快照。

    若要檢視任何節點的詳細數據,請選取節點。

    選擇 [ 重設縮放 ] 以返回預設檢視。

    您也可以選取節點,然後從操作功能表選擇 [ 在呼叫樹 狀結構中檢視] 之類的選項,以巡覽至分析報表中的不同檢視。

    顯示在呼叫樹狀結構中檢視的 Flame Graph 選項的螢幕快照。

翻轉火焰圖形

根據預設,工具中的火焰圖會顯示為向上或 柱形圖,其中 Y 軸會從頂端的零向下計算堆疊深度。

您可以按兩下 [翻轉火焰圖] 來檢視標準火焰圖版面配置。

顯示已選取 [翻轉 Flame Graph] 的螢幕擷取畫面。

針對複雜的 Flame Graph,您可以選取特定元素來縮放視覺效果。

在 [Flame Graph] 檢視中,您可以按一下具有滑鼠的節點或使用鍵盤來瀏覽。 此外,支援下列鍵盤快速鍵。

鍵盤快速鍵 Command
索引標籤 移至任何節點
向上鍵/向下鍵 移至節點的父系或子系
向右鍵/向左鍵 移至堆疊上節點的對等節點
Enter 放大 (選取)
Esc 縮小