Principy metod shromažďování výkonu profileru

Tento dokument popisuje metody shromažďování dat, které nástroje v rámci profileru výkonu sady Visual Studio využívají.

Vzorkování

Vzorkování shromažďuje statistická data o práci, kterou aplikace provádí během profilace, a je dobrým výchozím místem, kde najdete oblasti pro urychlení aplikace. V určených intervalech metoda Vzorkování shromažďuje informace o funkcích, které se spouštějí ve vaší aplikaci. Shromažďování dat se provádí shromažďováním informací o aplikaci v pravidelných intervalech nebo frekvenci vzorkování, jako je například každý milisekund. Shromážděná data se analyzují a vytvoří model, ve kterém byl čas strávený v aplikaci. Pokud potřebujete přesné měření doby volání nebo hledáte problémy s výkonem v aplikaci poprvé, můžete použít vzorkování.

Vzorkování má méně přesnosti v počtu volání, ale má nízké náklady na profiler a má malý vliv na provádění profilované aplikace. Mezi nástroje v profileru výkonu, které využívají metodu vzorkování, patří nástroj Využití procesoru.

Po dokončení shromažďování dat nástroj Využití procesoru analyzuje zachycená data a zobrazí sestavu.

Sledování

Trasování poskytuje lepší informace o tom, jak často se metoda spustila. Pokud potřebujete přesné míry čísel volání, použijte trasování. Trasování může mít větší dopad na výkon kódu během shromažďování, ale vzorkování má pouze malou režii. Trasování může být navíc pomalejší k analýze, protože zobrazení dat po kolekci trvá déle.

Instrumentace

Profilace instrumentace shromažďuje podrobné informace o práci prováděné aplikací během spuštění profilace. Shromažďování dat provádí nástroje, které buď vloží kód do binárního souboru, který zaznamenává informace o časování, nebo pomocí háků zpětného volání ke shromažďování a generování přesných informací o časování a počtu volání během spuštění aplikace. Metoda instrumentace má ve srovnání s přístupy založenými na vzorkování vysokou režii. Nástroje v profileru výkonu, které používají instrumentaci, zahrnují nástroje instrumentace a nástroj pro přidělování objektů .NET.

Vzorkování versus instrumentace

Hodnota vzorkování spočívá v tom, že má menší režii a z tohoto důvodu je pravděpodobnější statisticky reprezentativní pro aplikaci běžící v produkčním prostředí. Hodnota profilace instrumentace spočívá v tom, že můžete získat přesné počty volání, kolikrát byly vaše funkce volány. To poskytuje mnohem podrobnější informace než normální vzorkování, což může zkreslit čas potřebný v některých scénářích. Například funkce, které moc nedělají, ale často se nazývají, se zobrazí více, než by to bylo ve skutečném scénáři.

Při instrumentaci je každé volání funkce vybrané v aplikaci opatřeno poznámkami a instrumentováno tak, aby se při vyvolání přidalo do trasování spolu s informacemi o volajícím. Při vzorkování se aktuální zásobník volání dotazuje z procesoru v intervalu a pak se každý rámec přidá do trasování.