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