Sdílet prostřednictvím


Identifikace horkých cest pomocí grafu plamene (C#, Visual Basic, C++, F#)

Profilovací nástroje sady Visual Studio pro využití procesoru a instrumentaci zahrnují zobrazení Flame Graph. Graf plamene vám pomůže identifikovat horké cesty v kódu tak, že zobrazí vizualizaci stromu volání. Kritická cesta je zásobník volání pro funkce, které využívají nejvíce výpočetního výkonu či času, a často je vhodným bodem pro hledání potenciálních optimalizací výkonu. Graf poskytuje vizuální přehled o tom, kde je čas strávený ve vaší aplikaci, a můžete kliknout na konkrétní uzly a podrobněji je prozkoumat.

Snímek obrazovky zobrazující Flame Graph se zobrazenou místní nabídkou

Kurz, který ukazuje, jak zlepšit výkon pomocí grafu plamene, najdete v případové studii: Příručka začátečníka k optimalizaci kódu. Informace o profileru procesoru najdete v tématu Analýza výkonu pomocíprofilace procesoru .

Prozkoumání horkých cest

Zobrazení Flame Graph se nachází v zobrazení podrobností sestavy .diagession.

  1. Začněte profilovací relaci s nástrojem Využití CPU nebo Nástroj pro instrumentaci.

  2. Po zastavení relace profilace a načtení sestavy vyberte Otevřít podrobnosti.

    Snímek obrazovky s vybranou možností Otevřít podrobnosti

  3. V rozevíracím seznamu Aktuální zobrazení vyberte Plamenový graf.

    Snímek obrazovky s vybraným zobrazením Flame Graph

    Zobrazí se zobrazení Flame Graph.

    Snímek obrazovky zobrazující přehled flame graphu

    Horká cesta je cesta kódu, která používá nejvíce procesoru nebo nejvíce času, když se podíváte dolů přes strom volání.

    Ve výchozím nastavení data zobrazená v Grafu plamene představují stejná data jako v zobrazení stromu volání pro období shromažďování dat. Konkrétně u využití procesoru se zobrazí hodnoty celkové CPU. Tato hodnota je inkluzivní, takže zahrnuje využití procesoru (tj. čas výpočtu procesoru) používaný voláními funkce a všechny další funkce volané funkcí. Stejně tak, pro instrumentaci, graf zobrazuje hodnoty ekvivalentní sloupci Suma ve stromovém zobrazení volání.

    Pokud ale vyberete uzel, stane se vybraný uzel novým směrný plán a použije 100% šířky grafu plamene. Díky tomu můžete lépe vizualizovat složitý strom volání a zobrazovat dlouhé názvy, když jsou zkrácené nebo skryté. Tady je příklad grafu plamene, který zobrazuje složitější strom volání.

    Snímek obrazovky znázorňující Flame Graph pro složitý strom volání

    Pokud chcete zobrazit podrobnosti o libovolném uzlu, vyberte uzel.

    Pokud se chcete vrátit do výchozího zobrazení, zvolte Obnovit zobrazení.

    V sestavě profilace můžete také přejít na různá zobrazení výběrem uzlu a následným výběrem možnosti, jako je například Zobrazit ve stromu volání, z místní nabídky.

    Snímek obrazovky znázorňující možnost Plamenový graf pro zobrazení ve stromu volání

Překlopení grafu plamene

Ve výchozím nastavení je graf plamene v nástroji zobrazen vzhůru nohama nebo jako icicle chart, kde osa y počítá hloubku zásobníku směrem dolů od nuly v horní části.

Standardní rozložení grafu plamene můžete zobrazit kliknutím na Flip Flame Graph.

Snímek obrazovky s vybranou možností Flip Flame Graph

U komplexního grafu plamene můžete vizualizaci přiblížit výběrem konkrétních prvků.

V zobrazení Flame Graph můžete procházet kliknutím na uzel myší nebo pomocí klávesnice. Podporují se také následující klávesové zkratky.

Klávesová zkratka Příkaz
Tabulátor Přejděte na libovolný uzel
Šipka nahoru/Šipka dolů Přejít na nadřazený nebo podřízený uzel
Šipka vpravo/vlevo Přejděte k sousedovi uzlu v zásobníku
Vstoupit Přiblížení (výběr)
Útěk Oddálit