První seznámení s nástroji pro profilaci (C#, Visual Basic, C++, F#)
Nástroje pro měření výkonu aplikací jsou nezbytné pro vývojáře, kteří chtějí optimalizovat kód a zlepšit výkon aplikací. Visual Studio nabízí řadu nástrojů pro profilaci a diagnostiku, které vám pomůžou diagnostikovat využití paměti a procesoru a další problémy na úrovni aplikace. Pomocí těchto nástrojů můžete při spouštění aplikace shromažďovat údaje o výkonu. Profiler vám může pomoct rychle učinit informovaná rozhodnutí tím, že poskytne vizuální znázornění doby provádění a využití procesoru pro vaši aplikaci. V tomto článku se rychle podíváme na nejběžnější nástroje pro profilaci.
Nápovědu k výběru správného nástroje nebo zobrazení podpory nástrojů pro profilaci pro různé typy aplikací najdete v tématu Který nástroj mám použít? Kurz, který ukazuje obecný přístup k optimalizaci kódu pomocí nástrojů profilace, najdete v Případové studii: Průvodce začátečníkem optimalizace kódu.
Nejlepší zkušenosti s touto dokumentací získáte tak, že v seznamu v horní části článku vyberete upřednostňovaný vývojový jazyk nebo modul runtime.
Měření výkonu v buildech vydaných verzí
Nástroje v profileru výkonu mají poskytovat analýzu pro sestavení Release. Ve Výkonnostním profilovači můžete shromažďovat diagnostické informace během běhu aplikace a po jejím zastavení následně prozkoumat shromážděná data (posmrtná analýza).
Otevřete Profiler výkonu výběrem možnosti Ladění>Profiler výkonu (nebo stisknutím Alt + F2).
Další informace o použití nástroje pro využití procesoru nebo paměti v nástroji Performance Profiler oproti nástrojům integrovaným v ladicím programu najdete v tématu Spouštění nástrojů pro profilaci v uvolněné nebo laděné verzi sestavení.
Mezi nástroje dostupné v profileru výkonu patří:
- využití procesoru
- využití paměti
- instrumentace
- Souborový I/O
- využití GPU
Pokud chcete zobrazit podporu nástrojů pro profilaci pro různé typy aplikací, přečtěte si téma Který nástroj mám použít?.
V některých scénářích vám okno umožňuje vybrat více nástrojů pro profilaci. Nástroje, jako je využití procesoru, můžou poskytovat doplňková data, která můžete použít k usnadnění analýzy. Můžete také použít příkazový řádkový profiler pro aktivaci scénářů zahrnujících více profilovacích nástrojů.
Měření výkonu při ladění
Nástroje pro profilaci, ke kterým máte přístup během relace ladění, jsou k dispozici v okně Diagnostické nástroje. Okno Diagnostické nástroje se zobrazí automaticky, ledaže jste jej nevypnuli. Pokud chcete zobrazit okno, klikněte na Ladění / Windows / Zobrazit diagnostické nástroje (nebo stiskněte Ctrl + Alt + F2). V otevřeném okně můžete vybrat nástroje, pro které chcete shromažďovat data.
Při ladění můžete pomocí okna Diagnostické nástroje analyzovat procesor, využití paměti, čítače .NET a zobrazit události, které zobrazují informace související s výkonem.
okno Diagnostické nástroje
Při ladění můžete pomocí okna Diagnostické nástroje analyzovat využití procesoru a paměti a zobrazit události, které zobrazují informace související s výkonem.
Souhrnné zobrazení
Souhrnné zobrazení
Okno Diagnostické nástroje je běžným způsobem profilace aplikací, ale u buildů vydaných verzí můžete místo toho provést analýzu aplikace po mortem. Další informace o různých přístupech najdete v tématu Spuštění nástrojů pro profilaci na verzích nebo ladění sestavení. Pokud chcete zobrazit podporu nástrojů pro profilaci pro různé typy aplikací, přečtěte si téma Který nástroj mám použít?.
Mezi nástroje, které jsou dostupné v okně Diagnostické nástroje nebo během relace ladění, patří:
Spropitné
Relaunch použijte k přeskočení úvodní stránky a automatickému spuštění s předchozím nastavením stisknutím Alt+F2 nebo kliknutím na Ladění > analýza výkonu.
Poznámka
Windows 8 a novější jsou potřeba ke spuštění nástrojů pro profilaci s ladicím programem (oknoDiagnostické nástroje).
Analýza využití procesoru
Nástroj Využití procesoru je dobrým místem pro zahájení analýzy výkonu vaší aplikace. Dozvíte se více o prostředcích procesoru, které vaše aplikace spotřebovává. Můžete použít nástroj využití procesoru integrovaný v ladicím programu nebo nástroj postmortem využití procesoru .
Při použití nástroje Využití procesoru integrovaného v ladicím programu otevřete okno Diagnostických nástrojů (pokud je zavřené, vyberte Ladění / Windows / Zobrazit diagnostické nástroje). Při ladění otevřete zobrazení Souhrn a vyberte Zaznamenat profil procesoru.
využití procesoru
využití procesoru
Jedním ze způsobů, jak nástroj použít, je nastavit v kódu dvě zarážky, jednu na začátku a druhou na konci funkce nebo oblasti kódu, kterou chcete analyzovat. Zkontrolujte data profilace, když jste pozastaveni na druhém kontrolním bodu.
Zobrazení využití procesoru ukazuje seznam funkcí seřazených podle nejdelšího běhu, přičemž nejdéle běžící funkce je nahoře pod Nejlepší funkce. Sekce Hot Path ukazuje zásobník volání pro funkce, které nejvíce využívají CPU. Tyto seznamy vám můžou pomoct s funkcemi, u kterých dochází k kritickým bodům výkonu.
Zobrazení využití procesoru ukazuje seznam funkcí seřazených podle doby běhu, přičemž nejdéle běžící funkce je na vrcholu seznamu. To vám může pomoct s funkcemi, u kterých dochází k kritickým bodům výkonu.
Klikněte na funkci, která vás zajímá, a zobrazí se podrobnější zobrazení stromu volání se zvýrazněnou vybranou funkcí. Tabulka zobrazuje sloupce s daty, jako je čas strávený ve funkci, včetně volaných funkcí (Celkový čas CPU), a druhý sloupec, který zobrazuje čas strávený ve funkci, bez volaných funkcí (Vlastní čas CPU). Tato data vám můžou pomoct vyhodnotit, jestli je samotná funkce kritickým bodem výkonu.
Spropitné
Profiler ve Visual Studiu podporuje jak shromažďování, tak zobrazení stop. Profiler může také zobrazit trasování shromážděná dříve jinými nástroji, například dotnet-trace. Dotnet-trace vytváří výsledky vzorkování, nikoli instrumentované trasování. Další informace viz dotnet-trace.
Klikněte na funkci, která vás zajímá, a zobrazí se podrobnější motýlkové zobrazení se třemi panely, s vybranou funkcí uprostřed okna, volající funkcí vlevo a volanými funkcemi vpravo. Sekce Tělo funkce ukazuje celkovou dobu (a procento času) strávenou v těle funkce, s výjimkou času stráveného voláním a volanými funkcemi. Tato data vám můžou pomoct vyhodnotit, jestli je samotná funkce kritickým bodem výkonu.
Analýza využití paměti
Okno Diagnostické nástroje také umožňuje vyhodnotit využití paměti v aplikaci pomocí nástroje Využití paměti. Můžete se například podívat na počet a velikost objektů v haldě. Můžete použít nástroj pro využití paměti integrovaný v ladicím programu nebo post-mortem nástroj pro využití paměti v profileru výkonu.
Vývojáři .NET si můžou vybrat mezi nástrojem pro přidělování objektů .NET nebo nástrojem využití paměti.
- Nástroj pro alokaci objektů .NET vám pomůže rozpoznat vzorce a anomálie alokace ve vašem .NET kódu a odhalit běžné problémy s uvolňováním paměti. Tento nástroj běží pouze jako nástroj po úmrtí. Tento nástroj můžete spustit na místních nebo vzdálených počítačích.
- Nástroj Využití paměti je užitečný při identifikaci úniků paměti, které nejsou v aplikacích .NET obvykle běžné. Pokud potřebujete použít funkce ladicího programu při kontrole paměti, jako je například krokování kódu, doporučuje se nástroj pro využití paměti integrovaného s ladicím programem .
Pokud chcete analyzovat využití paměti pomocí nástroje Využití paměti, musíte pořídit aspoň jeden snímek paměti. Nejlepší způsob, jak analyzovat paměť, je často pořídit dva snímky; první vpravo před podezřelým problémem s pamětí a druhý snímek hned po výskytu podezřelého problému s pamětí. Pak můžete zobrazit rozdíl dvou snímků a přesně zjistit, co se změnilo. Následující obrázek znázorňuje pořízení snímku pomocí nástroje integrovaného v ladicím programu.
Pokud vyberete některý z odkazů se šipkami, zobrazí se diferenciální zobrazení haldy (červená šipka nahoru ukazuje rostoucí počet objektů (vlevo) nebo zvětšení velikosti haldy (vpravo)). Pokud kliknete na správný odkaz, zobrazí se rozdílové zobrazení haldy seřazené podle objektů, které zvýšily největší velikost haldy. To vám může pomoct určit problémy s pamětí. Například na obrázku níže se počet bajtů, které používají objekty
ClassHandlersStore
, zvýšil o 3 492 ve druhém snímku.
Pokud kliknete na odkaz nalevo místo zobrazení Využití paměti, zobrazení haldy bude uspořádáno podle počtu objektů; objekty určitého typu s nejvyšším nárůstem počtu jsou zobrazeny nahoře (seřazené podle sloupce Rozdíl Počtů).
Instrumentace
Nástroj Instrumentace se podobá nástroji Využití procesoru s tím rozdílem, že místo využití procesoru poskytuje přesné počty volání a hodinový čas. Metoda instrumentace vyžaduje větší režii než nástroj Využití procesoru. Tento nástroj je k dispozici v profileru výkonu. Otevřete Výkonnostní profilovač výběrem Ladění> Výkonnostní profilovač (nebo Alt + F2). Další informace si můžete přečíst v části instrumentace.
Prozkoumání vstupně-výstupních operací souboru
Nástroj pro vstupně-výstupní operace souborů vám pomůže pochopit, jak můžete optimalizovat tyto operace, abyste zlepšili výkon vašich aplikací. Pokud se pokoušíte prozkoumat a diagnostikovat pomalé načítání, může vám nový nástroj Pro vstupně-výstupní operace souborů pomoct pochopit, jak vstupně-výstupní operace ovlivňují váš strávený čas. Tento nástroj je k dispozici v profileru výkonu. Otevřete profiler výkonu tak, že zvolíte ladění > profileru výkonu (nebo Alt + F2).
Nástroj zobrazuje operace čtení a zápisu souborů v tabulkovém seznamu.
Zkoumejte výkon pomocí PerfTips
Často je nejjednodušší způsob, jak zobrazit informace o výkonu, použít PerfTips. Pomocí PerfTips můžete zobrazit informace o výkonu při interakci s kódem. Můžete zkontrolovat informace, jako je doba trvání události (měřeno od posledního pozastavení ladicího programu nebo při spuštění aplikace). Pokud například procházíte kódem (F10, F11), zobrazí PerfTips dobu běhu aplikace mezi předchozím a aktuálním krokem.
Pomocí funkce PerfTips můžete zjistit, jak dlouho trvá spuštění bloku kódu nebo jak dlouho trvá dokončení jedné funkce.
Popisy výkonu zobrazují stejné události, které se objevují také v zobrazení Události diagnostických nástrojů. V zobrazení Události můžete zobrazit různé události, ke kterým dochází při ladění, například nastavení zarážky nebo operace krokování kódu.
Poznámka
Pokud máte Visual Studio Enterprise, můžete na této kartě také zobrazit události IntelliTrace.
Analýza asynchronního kódu (.NET)
Asynchronní nástroj .NET umožňuje analyzovat výkon asynchronního kódu ve vaší aplikaci. Tento nástroj je k dispozici v profileru výkonu. Otevřete Profiler výkonu tím, že zvolíte Ladění>Profiler výkonu (nebo stiskněte Alt + F2).
Nástroj zobrazí každou asynchronní operaci v zobrazení seznamu. Můžete zobrazit informace, jako je počáteční čas, koncový čas a celkový čas asynchronní operace.
Tento nástroj je podporovaný pro aplikace .NET Core a .NET 5 a novější.
Analýza asynchronního kódu (.NET)
Asynchronní nástroj .NET umožňuje analyzovat výkon asynchronního kódu ve vaší aplikaci. Tento nástroj je k dispozici v profileru výkonu. Otevřete Profiler výkonu tak, že zvolíte Ladění>Profiler výkonu (nebo Alt + F2).
Nástroj zobrazí každou asynchronní operaci v zobrazení seznamu. Můžete zobrazit informace, jako je počáteční čas, koncový čas a celkový čas asynchronní operace.
Tento nástroj je podporovaný pro aplikace .NET Core a .NET 5 a novější.
Analýza výkonu databáze (.NET)
Pro aplikace .NET Core a .NET 5 nebo novější, které používají ADO.NET nebo Entity Framework Core, nástroj Database umožňuje zaznamenávat databázové dotazy, které vaše aplikace provádí během diagnostické relace. Potom můžete analyzovat informace o jednotlivých dotazech, abyste našli místa, kde je možné zlepšit výkon vaší aplikace. Tento nástroj je k dispozici v profileru výkonu. Otevřete Profiler výkonu výběrem možnosti Ladění>Profiler výkonu (nebo stiskněte Alt + F2).
Nástroj zobrazí každý dotaz v zobrazení seznamu. Můžete zobrazit informace, jako je čas zahájení dotazu a doba trvání.
Vizualizace čítačů .NET (.NET)
Počínaje verzí 16.7 sady Visual Studio 2019 můžete k vizualizaci čítačů výkonu použít nástroj .NET Counters ve Visual Studio. Můžete vizualizovat čítače vytvořené pomocí čítačů dotnet. Čítače dotnet podporují mnoho čítačů, jako je využití procesoru a velikost haldy uvolňování paměti.
Nástroj zobrazí živé hodnoty pro každý čítač v zobrazení seznamu.
Tento nástroj je podporovaný pro aplikace .NET Core a .NET 5 a novější.
Prozkoumání událostí aplikace
Obecný prohlížeč událostí umožňuje zobrazit aktivitu vaší aplikace prostřednictvím seznamu událostí, jako je načtení modulu, spuštění vlákna a konfigurace systému, které vám pomůžou lépe diagnostikovat, jak vaše aplikace funguje přímo v profileru sady Visual Studio. Tento nástroj je k dispozici v profileru výkonu. Otevřete Profiler výkonu tím, že zvolíte Ladění>Profiler výkonu (nebo Alt + F2).
Nástroj zobrazí každou událost v zobrazení seznamu. Sloupce poskytují informace o každé události, například název události, časové razítko a ID procesu.
Zobrazení vlastních událostí v grafech časové osy
Můžete programově vytvořit vlastní události, které se v grafech časové osy zobrazují jako ikony, jako jsou grafy využití procesoru a využití paměti. Další informace naleznete v části Přidání značek uživatelů na časovou osu.
Analýza spotřeby prostředků (XAML)
V aplikacích XAML, jako jsou desktopové aplikace WPF pro Windows a aplikace pro UPW, můžete analyzovat spotřebu prostředků pomocí nástroje Časová osa aplikace. Můžete například analyzovat čas strávený aplikací přípravou rámců uživatelského rozhraní (rozložení a vykreslování), obsluhou požadavků na síť a disk a ve scénářích, jako je spuštění aplikace, načtení stránky a změna velikosti okna. Chcete-li nástroj použít, vyberte Časová osa aplikace v Profileru výkonu a pak vyberte Spustit. V aplikaci si projděte scénář s předpokládaným problémem se spotřebou prostředků a pak zvolte Ukončit shromažďování pro generování sestavy.
Nízké snímkové rychlosti v grafu propustnosti vizuálu můžou odpovídat vizuálním problémům, které se zobrazí při spuštění aplikace. Podobně můžou vysoká čísla v grafu využití vláken uživatelského rozhraní odpovídat problémům s odezvou uživatelského rozhraní. V sadě můžete vybrat časové období s podezřením na problém s výkonem a pak prozkoumat podrobné aktivity vlákna uživatelského rozhraní v zobrazení podrobností časové osy (dolní podokno).
V zobrazení podrobností časové osy můžete najít informace, jako je typ aktivity (nebo prvek uživatelského rozhraní), spolu s dobou trvání aktivity. Například na obrázku má událost Rozložení ovládacího prvku Grid 57,53 ms.
Pro více informací viz Časový harmonogram aplikace.
Prozkoumání výkonu uživatelského rozhraní a událostí přístupnosti (UPW)
V aplikacích pro UWP můžete povolit analýzu uživatelského rozhraní v okně Diagnostické nástroje. Nástroj hledá běžné problémy s výkonem nebo přístupností a zobrazuje je v zobrazení událostí při ladění. Popisy událostí obsahují informace, které vám můžou pomoct s řešením problémů.
Analýza využití GPU (Direct3D)
V aplikacích Direct3D (komponenty Direct3D musí být v jazyce C++), můžete prozkoumat aktivitu na GPU a analyzovat problémy s výkonem. Další informace najdete v tématu využití GPU. Pokud chcete nástroj použít, vyberte v Profileru výkonu Využití GPU, a pak vyberte Spustit. V aplikaci si projděte scénář, který vás zajímá o profilaci, a pak zvolte Zastavit shromažďování a vygenerujte sestavu.
Když vyberete časové období v grafech a zvolíte zobrazit podrobnosti, zobrazí se podrobné zobrazení v dolním podokně. V podrobném zobrazení můžete prozkoumat, kolik aktivit se děje na jednotlivých procesorech a GPU. Výběrem událostí v nejnižším podokně zobrazíte vyskakovací okna na časové ose. Vyberte například událost Přítomný a zobrazte vyskakovací okna hovoru Přítomný. (Světle šedé svislé čáry VSync lze použít jako odkaz, abyste pochopili, jestli některé Present volání vynechala VSync. Aby aplikace trvale dosáhla 60 FPS, musí existovat jeden Present volání mezi každými dvěma VSync.)
Pomocí grafů můžete také určit, jestli jsou kritické body výkonu vázané na procesor nebo GPU.
Analýza výkonu (starší verze nástrojů)
V sadě Visual Studio 2019 byly starší verze Průzkumníka výkonu a související nástroje pro profilaci, jako je Průvodce výkonem, začleněny do Profilovače výkonu, který můžete otevřít pomocí možnosti Debug>Profilovač výkonu. V profileru výkonu závisí dostupné diagnostické nástroje na zvoleném cíli a aktuálním otevřeném spouštěcím projektu. Nástroj Využití procesoru poskytuje funkci vzorkování, která byla dříve podporována v Průvodci výkonem. Nástroj Instrumentace poskytuje schopnost instrumentované profilace (pro přesné počty volání a časy trvání), která byla dříve součástí Průvodce výkonem. V profileru výkonu se zobrazí také další nástroje pro paměť.
nástroj