Který nástroj pro výkon mám použít? (C#, Visual Basic, C++, F#)
Visual Studio nabízí celou řadu nástrojů pro profilaci, které vám pomůžou diagnostikovat různé druhy problémů s výkonem aplikací v závislosti na typu aplikace. V tomto článku poskytujeme informace, které vám pomůžou najít správný nástroj pro váš scénář a typ aplikace.
Obecný přístup k optimalizaci kódu pomocí nástrojů pro profilaci najdete v případové studii: Příručka začátečníka k optimalizaci kódu.
Který nástroj mám použít?
Následující tabulka uvádí různé nástroje, které Sada Visual Studio nabízí, a poskytuje běžné scénáře pro výběr nástroje.
Nástroj pro měření výkonu | Popis | Kdy nástroj použít? |
---|---|---|
Využití procesoru | Ukazuje, kde procesor tráví čas. | • Zahajte šetření obecných problémů s výkonem. • Prozkoumejte vysoké využití procesoru serveru. • Prozkoumejte scénáře DevOps, jako je například situace, kdy se objednávky nedostávají na prodejní web. • Optimalizujte využití procesoru. • Prozkoumejte latenci při voláních rozhraní API. |
Graf plamene | Zobrazení v nástroji Využití procesoru, který poskytuje alternativní vizualizaci stromu volání. | Zkoumání latence při voláních rozhraní API |
Horká cesta | Podívejte se v nástroji Využití procesoru, který ukazuje, kde byla většina času procesoru strávena ve vaší aplikaci. | Zkoumání latence při voláních rozhraní API |
Využití paměti | Zobrazuje paměť vaší aplikace pro vyhledání problémů, jako je nevracení paměti. | • Optimalizace využití paměti• Prozkoumání zablokování uživatelského rozhraní• Prošetření podezřelého nevrácení paměti (nativní kód) |
Přidělení objektů .NET | Ukazuje, kde jsou objekty .NET přiděleny, a informace o uvolňování paměti. | • Optimalizace využití paměti .NET• Analýza uvolňování paměti |
Instrumentace | Zobrazuje přesné počty volání a časy volání. | • Potřebujete nástroj, jako je využití procesoru, ale požadujete přesné počty volání a čas strávený ve funkcích na základě hodinového času. • Chcete zobrazit blokovaný čas, například čas strávený čekáním na zámky. • Poznámka: Tento nástroj vyžaduje dodatečnou režii. |
Vstupně-výstupní operace souboru | Ukazuje operace vstupně-výstupních operací souborů a dobu jejich trvání a množství dat, která zpracovávají. | Prozkoumání zablokování uživatelského rozhraní |
Tipy pro výkon | Zobrazuje rychlé měření informací o výkonu při interakci s kódem. | Při ladění chcete zobrazit uplynulý čas mezi předchozí operací kroku (nebo zarážku) na aktuální krok nebo zarážku. |
Prohlížeč událostí | Zobrazuje požadavky HTTP, zprávy protokolu a výjimky. | • Zkoumání latence ve voláních rozhraní API• Zkoumání pomalé aplikace spuštěné na vzdáleném webovém serveru |
Asynchronní .NET | Zobrazuje využití async/await v aplikacích .NET. | Prozkoumejte podezřelý problém s výkonem asynchronního kódu. |
Čítače .NET | Živá sestava pro čítače .NET | • Zahajte šetření obecných problémů s výkonem. • Chcete trasování pro metriky založené na čítačích .NET, jako jsou výjimky za sekundu, uvolňování paměti a využití procesoru. |
Databáze | Zobrazuje výkon databázových dotazů. | Prozkoumejte výkon databázových dotazů, které používají ADO.NET nebo Entity Framework Core. |
Využití GPU | Zobrazuje vysoké využití hardwaru vaší aplikace Direct3D. | Zkontrolujte, jestli je výkon aplikace svázaný s procesorem nebo gpu. |
Časová osa aplikace | Zobrazuje výkon uživatelského rozhraní pro aplikace XAML. | Prozkoumejte výkon uživatelského rozhraní v aplikacích XAML, například čas strávený vykreslováním snímků. |
IntelliTrace | Nástroj ladicího programu, který umožňuje zaznamenávat události a zkoumat stav aplikace v různých bodech provádění. | Chcete, aby nástroj prozkoumal stav aplikace v různých bodech, a ne jenom aktuální stav aplikace. |
Které nástroje jsou podporovány pro můj projekt?
Následující tabulka uvádí různé nástroje, které Sada Visual Studio nabízí, a různé typy projektů, se kterými je můžete použít:
Nástroj pro měření výkonu | .NET | C/C++ | UWP | ASP.NET/ASP.NET Core |
---|---|---|---|---|
Využití procesoru | ano | ano | ano | ano |
Využití paměti | ano | ano | ano | ano |
Přidělení objektů .NET | ano | ne | ano | ano |
Instrumentace | ano | ano | ano | ano |
Vstupně-výstupní operace souboru | ano | ano | ano | ano |
Tipy pro výkon | ano | ano | ano | ano |
Prohlížeč událostí | ano | ano | ano | ano |
Asynchronní .NET | ano | ne | ano | ano |
Čítače .NET | Ano (jenom .NET Core/5 nebo novější) | ne | ne | Ano (jenom ASP.NET Core) |
Databáze | Ano (jenom .NET Core/5 nebo novější) | ne | ne | Ano (jenom ASP.NET Core) |
Využití GPU | ano | ano | ano | ne |
Časová osa aplikace | Ano (XAML) | ne | ano | ne |
Prohlížeč výkonu | ne | ne | ne | ne |
IntelliTrace | .NET pouze se sadou Visual Studio Enterprise | ne | .NET pouze se sadou Visual Studio Enterprise | .NET pouze se sadou Visual Studio Enterprise |
Které nástroje jsou podporovány v Linuxu?
Linux podporuje následující nástroje jako cílovou platformu i Windows:
- Využití procesoru
- Sledování přidělování objektů .NET
- .NET Async
- Čítače .NET
- Prohlížeč událostí
- Databáze
Naučte se používat profilátory.
Následující články a blogové příspěvky obsahují další informace, které vám pomůžou efektivně používat nástroje pro výkon sady Visual Studio.
- Případová studie: Průvodce pro začátečníky pro optimalizaci kódu
- Případová studie: Izolace problému s výkonem
- Vylepšení výkonu sady Visual Studio pomocí nového nástroje instrumentace
- Případová studie: Dvojitý výkon za méně než 30 minut