Dynamische paden identificeren met een vlamgrafiek (C#, Visual Basic, C++, F#)
Visual Studio-profileringshulpprogramma's voor CPU-gebruik en instrumentatie omvatten de Flame Graph weergave. De Flame Graph helpt u bij het identificeren van hete paden in uw code door een visualisatie van de aanroepstructuur te tonen. Het hete pad is de call stack voor de functies die de meeste CPU-capaciteit of de meeste tijd verbruiken, en is vaak een goede plek om te zoeken naar mogelijke prestatieoptimalisaties. De grafiek geeft een visueel overzicht van waar de tijd in uw toepassing wordt besteed en u kunt klikken op specifieke knooppunten om er verder in te graven.
Zie Casestudy: Beginnershandleiding voor het optimaliseren van codevoor een zelfstudie die laat zien hoe u de prestaties kunt verbeteren met behulp van de vlamgrafiek. Zie Prestaties analyseren met behulp van CPU-profileringvoor meer informatie over de CPU-profiler.
Dynamische paden onderzoeken
De Vlamgrafiek is te vinden in de detailweergave van het rapport .diagession.
Start een profiling-sessie met de CPU-gebruik- of instrumentatietool.
Nadat u de profileringssessie hebt gestopt en het rapport wordt geladen, selecteert u Details openen.
Selecteer Flame Graph in het dropdownmenu Huidige weergave.
De vlamgrafiekweergave verschijnt.
Het kritieke pad is het codepad dat de meeste CPU of tijd verbruikt wanneer u naar beneden door de aanroepstructuur kijkt.
De gegevens die in de Vlamgrafiek worden weergegeven, vertegenwoordigen standaard dezelfde gegevens als in de oproepboom weergave tijdens de gegevensverzamelingsperiode. Voor CPU-gebruik worden de totale CPU- waarden weergegeven. Deze waarde is inclusief, dus het omvat het CPU-gebruik (dat wil gezegd, CPU-rekentijd) die wordt gebruikt door aanroepen naar de functie en eventuele andere functies die door de functie worden aangeroepen. Op dezelfde manier toont de grafiek voor Instrumentatie de waarden die overeenkomen met de kolom Totaal in de aanroepboomweergave.
Als u echter een knooppunt selecteert, wordt het geselecteerde knooppunt de nieuwe basislijn en wordt 100% van de breedte van de vlamgrafiek gebruikt. Hierdoor kunt u een complexe oproepstructuur beter visualiseren en lange namen weergeven wanneer ze worden afgekapt of verborgen. Hier is een voorbeeld van een vlamgrafiek die een complexere oproepboom toont.
Als u details over een knooppunt wilt weergeven, selecteert u het knooppunt.
Kies Zoom opnieuw instellen om terug te keren naar de standaardweergave.
U kunt ook naar verschillende weergaven in het profileringsrapport navigeren door een knooppunt te selecteren en vervolgens een optie te kiezen, zoals weergave in oproepstructuur in het contextmenu.
De vlamgrafiek omdraaien
Standaard wordt de vlamgrafiek in het hulpmiddel ondersteboven weergegeven of als een iciclediagram, waarbij de y-as de stapeldiepte naar beneden aftelt vanaf nul bovenaan.
U kunt een standaard lay-out van een vlamdiagram bekijken door op Flip Flame Graphte klikken.
Navigeren binnen de vlamgrafiek
Voor een complexe vlamgrafiek kunt u de visualisatie inzoomen door specifieke elementen te selecteren.
In de weergave Flame Graph kunt u navigeren door te klikken op een knooppunt met een muis of met het toetsenbord. Daarnaast worden de volgende sneltoetsen ondersteund.
Sneltoets | Bevelen |
---|---|
Tabblad | Naar een willekeurig knooppunt gaan |
Pijl omhoog/omlaag | Naar een ouder- of kindknooppunt gaan |
Rechter-/linkerpijl | Naar de peer van een knooppunt op de stack gaan |
Binnenkomen | Inzoomen (selecteren) |
Ontsnappen | Uitzoomen |