Gyakori elérésű útvonalak azonosítása lánggráf használatával (C#, Visual Basic, C++, F#)
A Visual Studio CPU-kihasználtsághoz és instrumentáláshoz használt profilkészítési eszközei közé tartozik a Flame Graph nézet. A Flame Graph segítségével azonosíthatja gyakori útvonalakat, a kódban a hívásfa vizualizációjának megjelenítésével. A forró útvonal a legtöbb CPU-t vagy a legtöbb időt használó függvények hívási vereme, és gyakran jó hely a lehetséges teljesítményoptimalizálások kereséséhez. A gráf vizuális áttekintést ad arról, hogy az alkalmazás hol tölti az időt, és az adott csomópontokra kattintva tovább áshatja őket.
Egy oktatóanyag, amely bemutatja, hogyan javíthatja a teljesítményt a lánggráf használatával, tekintse meg Esettanulmány: Kezdő útmutató a kódoptimalizálásához. A processzorprofilozóról további információt a Teljesítmény elemzése a processzorprofil-használatával című témakörben talál.
Gyakori elérésű útvonalak vizsgálata
A "Flame Graph" részletes nézete a .diagession jelentésben található.
Indítsa el a profilalkotási munkamenetet a CPU-kihasználtság vagy az instrumentációs eszköz használatával.
Miután leállította a profilkészítési munkamenetet, és a jelentés betöltődik, válassza a Részletek megnyitásalehetőséget.
Válassza Flame Graph az Aktuális nézet legördülő menüben.
Megjelenik a Flame Graph nézet.
A forró útvonal a legtöbb CPU-t használó vagy a legtöbb időt igénybe vevő kódútvonal, amikor a hívásfa elemzésekor lefelé haladunk.
Alapértelmezés szerint a Flame Graphban látható adatok ugyanazokat az adatokat képviselik, mint a Hívásfa nézetben az adatgyűjtési időszakra vonatkozóan. Pontosabban a cpu-használat esetében a teljes cpu- értékeket jeleníti meg. Ez az érték befogadó, ezért magában foglalja a függvény hívásai által használt processzorkihasználtságot (azaz a processzor számítási idejét), valamint a függvény által hívott egyéb függvényeket. Hasonlóképpen, a Instrumentation esetében a gráf a hívásfa nézetben az Total oszlopnak megfelelő értékeket jeleníti meg.
Ha azonban kiválaszt egy csomópontot, a kijelölt csomópont lesz az új alapkonfiguráció, és a lángdiagram szélességének 100% használ. Ez lehetővé teszi, hogy jobban átláss egy összetett hívásfát, és megtekinthesd a hosszú neveket, amikor azok csonkolva vannak vagy rejtve maradnak. Íme egy példa egy lángdiagramra, amely egy összetettebb hívásfát jelenít meg.
A csomópont részleteinek megtekintéséhez válassza ki a csomópontot.
Az alapértelmezett nézetre való visszatéréshez válassza a Nagyítás alaphelyzetbe állítása lehetőséget.
A profilkészítési jelentés különböző nézeteire is navigálhat, ha kijelöl egy csomópontot, majd kiválaszt egy olyan beállítást, mint például a Nézet a hívásfa a helyi menüből.
A Lángdiagram megfordítása
Alapértelmezés szerint az eszköz lánggráfja fejjel lefelé vagy jégcsapdiagramként jelenik meg, ahol az y tengely lefelé számlálja a verem mélységét a nullától lefelé a tetején.
A szabványos lángdiagram elrendezést a Lángdiagram átváltásagombra kattintva tekintheti meg.
Navigálás a lángdiagramon
Összetett lángdiagram esetén a vizualizációt bizonyos elemek kiválasztásával nagyíthatja.
A Flame Graph nézetben az egérrel vagy a billentyűzettel egy csomópontra kattintva navigálhat. Emellett az alábbi billentyűparancsok is támogatottak.
Billentyűparancs | Parancs |
---|---|
Tabulátor | Ugrás bármely csomópontra |
Fel/Le nyíl | Ugrás egy csomópont szülőjéhez vagy gyermekéhez |
Jobbra/balra mutató nyíl | Ugrás egy csomópont társára a veremen |
Belép | Nagyítás (kijelöl) |
Menekülés | Kicsinyítés |