Analýza horké cesty ke kořenovému adresáři v nástroji Využití paměti
Při profilaci kódu .NET v nástroji Využití paměti profilace v sadě Visual Studio vám může pomoct identifikovat objekty zachované v haldě, které způsobují problémy s využitím paměti, horká cesta ke kořenovému. V kontextu využití paměti je horká cesta referenční řetězec identifikovaný profilerem, který odkazuje na kořenový objekt, který je potenciálním zdrojem problémů s pamětí.
Při výpočtu inkluzivní velikosti objektu (celkové množství paměti uchováné na haldě udržováním objektu naživu), je často užitečné snížit graf silně propojené haldy do stromu. Na rozdíl od grafu má uzel ve stromu hodně potomků, ale pouze jednoho rodiče. Místo toho, abyste zvážili každou možnou cestu ke kořeni objektu, je volba nejpravděpodobnější cesty ke kořeni pomocí různých heuristik obvykle dostatečná k nalezení referenčního řetězce, který při odebrání učiní objekt způsobilým pro odstraňování paměti. Mezi tyto heuristiky patří priorita nejkratší cesty ke kořenovému adresáři, určitým kořenovým typům a cestám uživatelského kódu. Z různých důvodů tato strategie vždy nenajde nejzajímavější nebo nejdelší řetězec uchovávání informací, ale často poskytuje užitečný výchozí bod při zkoumání využití paměti.
Ve stromu Cesty ke kořenu nástroje Využití paměti se cesta s ikonou plamene () nazývá horká cesta ke kořenu.
Příklad
Pomocí možnosti Zobrazit pouze horké cesty vyfiltrujte zobrazení v podokně Cesty ke kořenovému.
V tomto příkladu došlo k úniku ovládacího prvku WPF (AttachToProcess.Dialog
) vazbou, která je nakonec kořenem AutomationPeer
. Ve filtrovaném zobrazení je cesta uchování zřejmá; zobrazí se pouze přímá cesta ke kořeni.
Když je tato možnost vypnuta, je zřejmé, že existují stovky vazeb a většina rozšiřujících cest vede do slepých uliček, které se cyklicky opakují. Bez vizuálního indikátoru je zdlouhavé procházet tisíce potenciálních cest uchovávání informací a najít tak možný důvod úniku.
Viz také
Další informace o nástroji Využití paměti sady Visual Studio najdete v tématu
- Analýza využití paměti pomocí ladicího programu
- Analýza využití paměti bez ladicího nástroje