共用方式為


在記憶體使用量工具中分析根目錄的熱門路徑

在 Visual Studio 中分析 記憶體使用量 分析工具中的 .NET 程式代碼時, 的熱門路徑可協助您識別堆積上保留的物件,而造成記憶體使用量問題。 在記憶體使用的上下文中,熱路徑 是分析工具識別出的引用鏈,指向可能是記憶體問題來源的根物件。

當計算物件的包含大小(維持物件存活而在堆積上保留的記憶體總量)時,將強連通的堆積圖簡化為樹狀結構通常會很有幫助。 與圖形不同,樹狀結構中的節點任意擁有許多子系,但只有單一父系。 與其考慮物件每一條可能的根節點路徑,不如使用各種啟發式方法選擇最可能的根路徑,這通常足以找到該參考鏈結,如果移除,將使物件符合垃圾回收的條件。 某些啟發式方法包括優先考慮根的最短路徑、特定的根類型以及使用者程式碼路徑。 基於各種原因,此策略不一定會找到最有趣或最長存留期的保留鏈結,但通常會在記憶體使用量調查中提供有用的起點。

在記憶體使用工具的 路徑到根 樹狀結構中,具有火焰圖示的路徑(顯示熱路徑圖示的螢幕截圖)被稱為熱路徑到根。

使用 僅顯示熱點路徑 選項,來過濾視圖於 路徑到根 窗格中。

在此範例中,WPF 控件(AttachToProcess.Dialog)會透過最終由 AutomationPeer根系結洩漏。 在篩選的檢視中,保留路徑非常明顯,只有通往根結點的直接路徑可見。

根參考圖表路徑的螢幕快照。只有顯示熱路徑已選中,突出顯示參考的線性鏈結。

當停用該選項時,很明顯有數百個系結,而且大部分的擴展路徑都會導致迴圈中的死胡同。 沒有視覺指標的情況下,排序數千個潛在的保留路徑以找出洩漏的可能原因是相當繁瑣的。 相同 [根路徑] 參考圖表的螢幕快照,未勾選 [顯示作用中路徑],且可以看到許多可能的死路。

另請參閱

如需 Visual Studio 記憶體使用量工具的詳細資訊,請參閱