Dela via


Identifiera heta sökvägar med ett flamdiagram (C#, Visual Basic, C++, F#)

Visual Studio-profileringsverktyg för processoranvändning och instrumentering innehåller Flame Graph- vy. Flame Graph- hjälper dig att identifiera heta sökvägar i koden genom att visa en visualisering av anropsträdet. Den heta sökvägen är anropsstacken för de funktioner som använder mest CPU eller mest tid, och är ofta ett bra ställe att leta efter potentiella prestandaoptimeringar. Diagrammet ger en visuell översikt över var tiden spenderas i ditt program och du kan klicka på specifika noder för att fördjupa dig i dem ytterligare.

Skärmbild som visar Flame Graph med snabbmenyn.

En självstudiekurs som visar hur du förbättrar prestandan med hjälp av flamdiagrammet finns i Fallstudie: Nybörjarguide för att optimera kod. Information om CPU-profileraren finns i Analysera prestanda med hjälp av CPU-profilering.

Undersöka heta vägar

Flame Graph-vyn finns i informationsvyn för .diagession rapport.

  1. Starta en profileringssession med antingen CPU-användningsverktyget eller instrumenteringsverktyget.

  2. När du har stoppat profileringssessionen och rapporten läses in väljer du Öppna information.

    Skärmbild som visar Öppna detaljer markerad.

  3. Välj Flame Graph i rullgardinsmenyn för aktuell vy.

    Skärmbild som visar Flame Graph-vyn markerad.

    Flame Graph-vyn visas.

    Skärmbild som visar Översikt över Flame Graph.

    Den heta sökvägen är den kodsökväg som använder mest CPU eller mest tid när du tittar nedåt genom anropsträdet.

    Som standard representerar data som visas i Flame Graph samma data som i Anropa träd vy för datainsamlingsperioden. Mer specifikt för CPU-användning visar den värdena för Total CPU. Det här värdet är inkluderande, så det inkluderar cpu-användning (dvs cpu-beräkningstid) som används av anrop till funktionen och andra funktioner som anropas av funktionen. På samma sätt, för Instrumentation, visar diagrammet värdena som motsvarar kolumnen Total i anropsträdsvyn.

    Men om du väljer en nod blir den valda noden den nya baslinjen och använder 100% av flamdiagrammets bredd. På så sätt kan du bättre visualisera ett komplext anropsträd och visa långa namn när de trunkeras eller döljs. Här är ett exempel på ett flamdiagram som visar ett mer komplext anropsträd.

    Skärmbild som visar Flame Graph för ett komplext anropsträd.

    Om du vill visa information om en nod väljer du noden.

    Välj Återställ zoomning för att återgå till standardvyn.

    Du kan också navigera till olika vyer i profileringsrapporten genom att välja en nod och sedan välja ett alternativ, till exempel Visa i anropsträdet från snabbmenyn.

    Skärmbild som visar alternativet Flame Graph för att visas i anropsträdet.

Vänd flamdiagrammet

Som standard visas flamdiagrammet i verktyget upp och ned eller som ett istappar, där y-axeln räknar stackdjupet nedåt från noll högst upp.

Du kan visa en standardlayout för flamdiagram genom att klicka på Flip Flame Graph.

Skärmbild som visar Flip Flame Graph har valts.

För ett komplext flamdiagram kan du zooma visualiseringen genom att välja specifika element.

I vyn Flame Graph kan du navigera genom att klicka på en nod med en mus eller med hjälp av tangentbordet. Dessutom stöds följande kortkommandon.

Kortkommando Befallning
Flik Gå till valfri nod
Uppåt-/nedåtpil Gå till en nods föräldernod eller barnnod
Höger-/vänsterpil Gå till en nods peer i stacken
Gå in Zooma in (välj)
Flykt Zooma ut