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říručce 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
Instrumentation Zobrazuje přesné počty volání a časy volání. Potřebujete nástroj, jako je využití procesoru, ale chcete přesné počty volání a výsledky na základě hodinového času. 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 Vizualizace pro čítače .NET Chcete vizualizaci 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
Instrumentation 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

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.