Sdílet prostřednictvím


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

Nástroje pro profilaci sady Visual Studio pro využití procesoru a instrumentaci zahrnují zobrazení Flame Graph . Flame Graph vám pomůže identifikovat horké cesty v kódu zobrazením vizualizace stromu volání. Horká cesta je zásobník volání pro funkce, které používají nejvíce procesoru nebo nejvíce času, a často je dobrým místem pro vyhledá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 znázorňují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: Průvodce začátečníkem pro optimalizaci kódu. Informace o profileru procesoru naleznete v tématu Analýza výkonu pomocí profilace procesoru.

Prozkoumání horkých cest

Zobrazení Flame Graph je v zobrazení podrobností sestavy .diagession .

  1. Spusťte relaci profilace pomocí nástroje využití procesoru nebo instrumentace.

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

    Snímek obrazovky znázorňující 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 se zobrazeným přehledem 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ě pro využití procesoru zobrazuje celkové hodnoty procesoru . 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 graf pro instrumentaci zobrazuje hodnoty ekvivalentní sloupci Total (Celkem ) v zobrazení stromu 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 komplexní 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 náhled .

    V sestavě profilace můžete také přejít na různá zobrazení tak, že vyberete uzel a pak v místní nabídce zvolíte možnost Zobrazit ve stromu volání.

    Snímek obrazovky znázorňující možnost Flame Graph pro zobrazení ve stromu volání

Překlopení grafu plamene

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

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

Snímek obrazovky znázorňující 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
Tab Přechod na libovolný uzel
Šipka nahoru/Šipka dolů Přechod na nadřazený nebo podřízený uzel
Šipka vpravo/vlevo Přechod na partnerský vztah uzlu v zásobníku
ENTER Přiblížení (výběr)
Escape Oddálit