Delen via


Belangrijkste pad naar wortel analyseren in het Geheugengebruik-hulpprogramma

Wanneer u .NET-code profileert met de Profileringstool voor Geheugengebruik in Visual Studio, kan het hete pad naar de bron u helpen bij het identificeren van objecten die op de heap worden vastgehouden en die geheugengebruiksproblemen veroorzaken. In de context van geheugengebruik is het dynamisch pad een referentieketen die wordt geïdentificeerd door de profiler die verwijst naar een hoofdobject dat een potentiële bron van geheugenproblemen is.

Bij het berekenen van de inclusieve grootte van een object (de totale hoeveelheid geheugen die op de heap wordt bewaard door het object in leven te houden), is het vaak handig om de sterk verbonden heapgrafiek in een boom te verminderen. In tegenstelling tot een grafiek heeft een knoop in een boom willekeurig veel kinderen, maar slechts één ouder. In plaats van elk mogelijk pad naar de hoofdmap voor een object te overwegen, is het kiezen van het meest waarschijnlijke pad naar de hoofdmap met behulp van verschillende heuristieken meestal voldoende om de referentieketen te vinden die, indien verwijderd, het object in aanmerking komt voor garbagecollection. Sommige van deze heuristieken omvatten het prioriteit geven aan het kortste pad naar de root, bepaalde roottypes en gebruikerscodepaden. Om verschillende redenen vindt deze strategie niet altijd de meest interessante of langste bewaarketen, maar het biedt vaak een nuttig uitgangspunt in een onderzoek naar geheugengebruik.

In de paden naar root boomstructuur van het hulpprogramma Geheugengebruik, wordt het pad met het vlampictogram (Schermopname die het Hot Path-pictogram toont.) het hot path naar root genoemd.

Voorbeeld

Gebruik de Alleen belangrijke paden weergeven optie om het overzicht in het deelvenster Paden naar hoofdmap te filteren.

In dit voorbeeld is er een WPF-besturingselement (AttachToProcess.Dialog) dat wordt gelekt via een binding die uiteindelijk is geroot door een AutomationPeer. In de gefilterde weergave is het bewaarpad duidelijk; alleen het directe pad naar de wortel is zichtbaar.

Schermopname van de verwijzingsgrafiek Paden naar de wortel. Alleen kritieke paden weergeven is geselecteerd, waardoor een lineaire keten van verwijzingen wordt gemarkeerd.

Als de optie is uitgeschakeld, wordt het duidelijk dat er honderden bindingen zijn en dat de meeste uitbreidingspaden leiden tot dode uiteinden die cyclussen vormen. Zonder de visuele indicator is het tijdrovend om duizenden potentiële retentiepaden te sorteren om een mogelijke oorzaak van het lek te vinden. Schermopname van dezelfde paden naar de hoofdreferentiegrafiek, maar Dynamische paden weergeven is alleen uitgeschakeld met veel mogelijke dode uiteinden zichtbaar.

Zie ook

Zie voor meer informatie over het hulpprogramma Geheugengebruik van Visual Studio