在記憶體使用量工具中分析根目錄的熱門路徑
在 Visual Studio 中分析 記憶體使用量 分析工具中的 .NET 程式代碼時,根 的熱門路徑可協助您識別堆積上保留的物件,而造成記憶體使用量問題。 在記憶體使用的上下文中,熱路徑 是分析工具識別出的引用鏈,指向可能是記憶體問題來源的根物件。
當計算物件的包含大小(維持物件存活而在堆積上保留的記憶體總量)時,將強連通的堆積圖簡化為樹狀結構通常會很有幫助。 與圖形不同,樹狀結構中的節點任意擁有許多子系,但只有單一父系。 與其考慮物件每一條可能的根節點路徑,不如使用各種啟發式方法選擇最可能的根路徑,這通常足以找到該參考鏈結,如果移除,將使物件符合垃圾回收的條件。 某些啟發式方法包括優先考慮根的最短路徑、特定的根類型以及使用者程式碼路徑。 基於各種原因,此策略不一定會找到最有趣或最長存留期的保留鏈結,但通常會在記憶體使用量調查中提供有用的起點。
在記憶體使用工具的 路徑到根 樹狀結構中,具有火焰圖示的路徑()被稱為熱路徑到根。
例
使用 僅顯示熱點路徑 選項,來過濾視圖於 路徑到根 窗格中。
在此範例中,WPF 控件(AttachToProcess.Dialog
)會透過最終由 AutomationPeer
根系結洩漏。 在篩選的檢視中,保留路徑非常明顯,只有通往根結點的直接路徑可見。
當停用該選項時,很明顯有數百個系結,而且大部分的擴展路徑都會導致迴圈中的死胡同。 沒有視覺指標的情況下,排序數千個潛在的保留路徑以找出洩漏的可能原因是相當繁瑣的。
另請參閱
如需 Visual Studio 記憶體使用量工具的詳細資訊,請參閱