Nainstrumentujte svou aplikaci .NET v sadě Visual Studio (C#, C++, Visual Basic, F#)
S vydáním sady Visual Studio 2022 verze 17.5 můžete použít nový nástroj dynamické instrumentace. Tento nástroj ukazuje přesný počet, kolikrát se vaše funkce volají, a je rychlejší než předchozí verze nástroje Instrumentace. Tento nástroj podporuje instrumentaci .NET Core bez nutnosti souborů PDB. Počínaje sadou Visual Studio 2022 verze 17.6 Preview 2 nástroj podporuje také C/C++.
Tento nástroj se podobá nástroji Využití procesoru, ale je založený na hodinovém čase místo využití procesoru. To znamená, že se v instrumentačním trasování zobrazí blokovaný čas, například doba strávená čekáním na zámky, na rozdíl od nástroje Využití procesoru. Další informace o efektivním používání instrumentačního nástroje najdete v tématu Přehled instrumentace a v případové studii Izolace problému s výkonem.
Instrumentace aplikace
Vyberte Alt+F2 (nebo Ladění > Profileru Výkonu) a otevřete profiler výkonu v aplikaci Visual Studio.
Zaškrtněte políčko instrumentace.
Pokud povolíte možnost Začít s pozastaveným sběrem před spuštěním profileru, data se nebudou shromažďovat, dokud v zobrazení diagnostické relace nevyberete tlačítko Nahrávat.
Poznámka
Pokud nástroj není k dispozici pro výběr, zrušte zaškrtnutí políčka všech ostatních nástrojů, protože některé nástroje musí běžet samostatně. Další informace o spouštění nástrojů společně najdete v tématu Použití více nástrojů profileru současně.
Pokud nástroj stále není dostupný, zkontrolujte, jestli váš projekt splňuje předchozí požadavky. Ujistěte se, že je projekt v režimu vydané verze, abyste zachytili nejpřesnější data.
Nástroj spustíte tak, že vyberete tlačítko Start.
Vyberte položky v programu, které chcete instrumentovat.
Počínaje Visual Studio 2022 verze 17.11 profiler zachová vybrané položky pro další spuštění profilování.
Počínaje sadou Visual Studio 2022 verze 17.13 Preview 1 můžete vybrat položky, které se mají instrumentovat pro jazyk C++.
Vyberte OK.
Po spuštění nástroje si projděte scénář, který chcete v aplikaci profilovat. Pak vyberte Zastavit shromažďování nebo zavřete aplikaci, aby se zobrazila vaše data.
Analýza zprávy instrumentace
Vaše profilová data se zobrazí ve Visual Studio.
Zobrazení dat instrumentace zobrazuje seznam funkcí seřazených podle délky běhu, s nejdéle běžící funkcí v horní části pod Top Functions. Sekce Kritická část zobrazuje zásobník volání pro funkce, které jsou nejvíce vytížené. Tyto seznamy vám můžou pomoct s funkcemi, u kterých dochází k kritickým bodům výkonu.
Klikněte na funkci, kterou vás zajímá, a zobrazí se podrobnější zobrazení.
Dostupná data se podobají nástroji Využití procesoru s tím rozdílem, že jsou založená na hodinovém čase a počtu volání místo využití procesoru.
Analýza přehledů
Pokud se v části Top Insights zobrazí nějaké přehledy, získejte další informace o zjištěném problému pomocí poskytnutého odkazu. Další informace najdete v přehledech procesoru , je však třeba mít na paměti, že informace pro nástroj instrumentace jsou specifické pro reálný čas a nikoliv pro využití procesoru.
Pokud navíc používáte Copilot, otevřete okno chatu Copilot pomocí tlačítka Ask Copilot a Copilot nabídne návrhy na základě prozkoumání kódu a všech zjištěných problémů.
Analýza podrobných zpráv o instrumentaci
Chcete-li analyzovat sestavu instrumentace, klikněte na Otevřít podrobnostinebo kliknutím na některou z hlavních funkcí otevřete zobrazení funkce.
Zpráva poskytuje různé pohledy na diagnostické údaje.
Zobrazit | Popis |
---|---|
Volající/Volaný | Podrobné zobrazení času stráveného v konkrétní funkci, funkcích, které ji volala, a funkcích, které volala. Údaje o výkonu se agregují pro období shromažďování dat. Můžete vybrat volající funkce a volané funkce pro procházení volací cesty. |
Strom volání | Hierarchické zobrazení cesty volání funkce Používá se k identifikaci cest volání, které zabírají nejvíce času (horká cesta). |
Moduly | Zobrazení času stráveného v jednotlivých modulech agregované v průběhu období shromažďování dat Používá se k identifikaci modulů, které můžou být kritickými body výkonu kvůli kombinaci vysokého počtu volání nebo problémů s výkonem. |
Funkce | Zobrazení času stráveného v jednotlivých funkcích agregované v průběhu období shromažďování dat Používá se k identifikaci funkcí, které můžou být kritickými body výkonu kvůli kombinaci vysokého počtu volání nebo problémů s výkonem. |
Graf plamene | Hierarchické zobrazení cesty volání funkce ve vizualizaci grafu plamene Používá se k identifikaci cest volání, které zabírají nejvíce času (horká cesta). |
Ve všech zobrazeních s výjimkou volajícího nebo volaného se diagnostická sestava řadí podle celkem [jednotka, %], od nejvyššího po nejnižší. Změňte pořadí řazení nebo sloupec řazení výběrem záhlaví sloupců. Poklikejte na funkci, kterou vás zajímá, a zobrazí se zdroj funkce a také zvýraznění, které ukazuje, kde je čas strávený v této funkci. Tabulka zobrazuje sloupce s daty, jako je čas strávený ve funkci, včetně volaných funkcí (Celkem), a druhý sloupec, který zobrazuje čas strávený ve funkci s výjimkou volaných funkcí (Vlastní).
Tato data vám můžou pomoct vyhodnotit, jestli je samotná funkce kritickým bodem výkonu. Určete, kolik dat metoda zobrazuje, abyste zjistili, zda kód jiného výrobce nebo runtime knihovny jsou příčinou, že vaše koncové body jsou pomalé nebo mají vysokou spotřebu zdrojů.
Další informace o použití grafu Plamen naleznete v tématu Identifikace horkých cest pomocí Flame Graph.
Strom volání instrumentace
Pokud chcete zobrazit strom volání, vyberte nadřazený uzel v sestavě. Ve výchozím nastavení se stránka instrumentace otevře v zobrazení volající/volaný. V rozevíracím seznamu Aktuální zobrazení vyberte Strom volání. Zobrazení stromu volání vám může pomoct rychle identifikovat kritické body výkonu.
Můžete kliknout na tlačítka Rozbalit horkou cestu a Zobrazit horkou cestu, abyste zobrazili volání funkcí, která používají nejvíce čistého času v zobrazení stromu volání.
Tady jsou další informace o hodnotách sloupců:
total označuje, kolik času bylo ve funkci vynaloženo, a všechny funkce, které volala. Vysoké hodnoty Total ukazují na funkce, které využívají nejvíce hodinového času.
Self označuje, kolik času bylo stráveno v těle funkce, s vyloučením času stráveného ve všech funkcích, které byly volány. Vysoké hodnoty self mohou znamenat kritický bod výkonu v rámci samotné funkce.
počet volání označuje počet volání funkce.
Modul Název modulu obsahujícího funkci.
Asynchronní volání ve stromu volání instrumentace (.NET)
Počínaje sadou Visual Studio 2022 verze 17.13 Preview 2 zobrazení vizuálního stromu volání vnoří asynchronní volání .NET pod funkce, kde byly asynchronní volání provedeny, což usnadňuje trasování toku provádění v rámci jednoho sjednoceného trasování zásobníku. To vám může pomoct rychle identifikovat kritické body výkonu.
Trasování sjednoceného zásobníku se zobrazuje v zobrazení stromu volání a v části Horká cesta na stránce Souhrn. Asynchronní uzly se zobrazí s popisovačem [asynchronní volání].
Zobrazení sestaveného asynchronního zásobníku můžete přepnout tak, že v zobrazení Souhrn profileru vyberete Spojit asynchronní zásobníky z možnosti Filtr. Nastavení je ve výchozím nastavení povolené.