.NET Framework – výkon

Pokud chcete vytvářet aplikace s velkým výkonem, měli byste navrhnout a naplánovat výkon stejně jako jakoukoli jinou funkci aplikace. Nástroje poskytované Microsoftem můžete použít k měření výkonu vaší aplikace a v případě potřeby můžete vylepšit využití paměti, propustnost kódu a rychlost odezvy. Toto téma obsahuje seznam nástrojů pro analýzu výkonu, které Microsoft poskytuje, a obsahuje odkazy na další témata, která pokrývají výkon pro konkrétní oblasti vývoje aplikací.

Návrh a plánování výkonu

Pokud chcete aplikaci s velkým výkonem, musíte navrhnout výkon do aplikace stejně, jako byste navrhli jakoukoli jinou funkci. Měli byste určit scénáře kritické pro výkon v aplikaci, nastavit cíle výkonu a měřit výkon pro tyto scénáře aplikací včas a často. Vzhledem k tomu, že každá aplikace je odlišná a má různé cesty provádění kritické pro výkon, určení těchto cest brzy a zaměření vašeho úsilí vám umožní maximalizovat produktivitu.

Abyste mohli vytvořit vysoce výkonnou aplikaci, nemusíte se s cílovou platformou úplně seznámit. Měli byste ale vyvinout představu o tom, které části cílové platformy jsou nákladné z hlediska výkonu. Můžete to provést měřením výkonu v rané fázi procesu vývoje.

Pokud chcete určit oblasti, které jsou zásadní pro výkon a stanovit vaše cíle výkonu, vždy zvažte uživatelské prostředí. Doba spuštění a odezva jsou dvě klíčové oblasti, které ovlivní vnímání vaší aplikace uživatelem. Pokud vaše aplikace používá hodně paměti, může se uživateli zobrazovat pomalá nebo může mít vliv na jiné aplikace spuštěné v systému nebo v některých případech může selhat proces odeslání Windows Storu nebo Windows Phone Storu. Pokud také určíte, které části kódu se provádějí častěji, můžete zajistit, aby byly tyto části kódu dobře optimalizované.

Analýza výkonu

V rámci celkového plánu vývoje nastavte body během vývoje, kde budete měřit výkon aplikace a porovnávat výsledky s cíli, které jste nastavili dříve. Změřte aplikaci v prostředí a hardwaru, které očekáváte, že uživatelé budou mít. Analýzou výkonu aplikace můžete včas a často změnit rozhodnutí o architektuře, která by byla nákladná a nákladná, aby se později v vývojovém cyklu opravila. Následující části popisují, nástroje pro měření výkonu můžete použít k analýze aplikací a diskuzi o trasování událostí, které tyto nástroje používají.

Nástroje pro měření výkonu

Tady jsou některé z nástroje pro měření výkonu, které můžete použít s vašimi aplikacemi .NET Framework.

Nástroj Popis
analýza výkonu Visual Studio Slouží k analýze využití procesoru aplikací rozhraní .NET Framework, které se nasadí do počítačů, na kterých běží operační systém Windows.

Tento nástroj je k dispozici v nabídce Ladění v Visual Studio po otevření projektu. Další informace najdete v Průzkumníku výkonu. Poznámka: Při cílení na Windows Phone použijte Windows Phone Application Analysis (viz další řádek).
Windows Phone Application Analysis Umožňuje analyzovat procesor a paměť, rychlost přenosu dat v síti, rychlost odezvy aplikací a spotřebu baterie ve vašich Windows Phone aplikacích.

Tento nástroj je k dispozici v nabídce Ladění pro projekt Windows Phone v Visual Studio po instalaci sady Windows Phone SDK. Další informace najdete v tématu Profilace aplikací pro Windows Phone 8.
PerfView Slouží k identifikaci problémů s výkonem souvisejícím s procesorem a pamětí. Tento nástroj používá trasování událostí pro rozhraní API pro profilaci Windows (ETW) a CLR k zajištění pokročilých šetření paměti a procesoru a také informací o uvolňování paměti a kompilaci JIT. Další informace o tom, jak používat PerfView, najdete v blogových příspěvcích.

Informace o problémech specifickýchproch
Windows Analyzátor výkonu Slouží k určení celkového výkonu systému, jako je paměť vaší aplikace a úložiště, když na stejném počítači běží více aplikací. Tento nástroj je k dispozici z webu download Center jako součást sady Windows Assessment and Deployment Kit (ADK) pro Windows 8. Další informace najdete v tématu Windows Analyzátor výkonu.

Trasování událostí pro Windows (ETW)

EtW je technika, která umožňuje získat diagnostické informace o spuštění kódu a je nezbytné pro mnoho z výše uvedených nástroje pro měření výkonu. EtW vytváří protokoly, když jsou konkrétní události vyvolány aplikacemi rozhraní .NET Framework a Windows. S etW můžete povolit a zakázat protokolování dynamicky, abyste mohli provádět podrobné trasování v produkčním prostředí bez restartování aplikace. Rozhraní .NET Framework nabízí podporu událostí ETW a etW používá mnoho profilací a nástroje pro měření výkonu ke generování dat o výkonu. Tyto nástroje často umožňují a zakažují události etW, takže znalost těchto událostí je užitečná. Konkrétní události etW můžete použít ke shromažďování informací o výkonu konkrétních komponent vaší aplikace. Další informace o podpoře etW v rozhraní .NET Framework najdete v tématu Události ETW v modulu Common Language Runtime a událostech ETW v knihovně paralelních úloh a PLINQ.

Výkon podle typu aplikace

Každý typ aplikace .NET Framework má vlastní osvědčené postupy, důležité informace a nástroje pro vyhodnocení výkonu. Následující tabulka odkazuje na témata o výkonu pro konkrétní typy aplikací rozhraní .NET Framework.

Typ aplikace Seznamte se s 
Aplikace .NET Framework pro všechny platformy Uvolňování paměti a výkon

Tipy výkonu
aplikace Windows 8.x Store napsané v C++, C# a Visual Basic Osvědčené postupy pro výkon aplikací pro Windows Store s využitím C++, C# a Visual Basic
Windows Presentation Foundation (WPF) WPF Performance Suite
ASP.NET Přehled výkonu ASP.NET
Nadpis Popis
Ukládání do vyrovnávací paměti v aplikacích .NET Framework Popisuje techniky ukládání dat do mezipaměti pro zvýšení výkonu v aplikaci.
Opožděná inicializace Popisuje, jak inicializovat objekty podle potřeby ke zlepšení výkonu, zejména při spuštění aplikace.
Spolehlivost Poskytuje informace o zabránění asynchronním výjimkám v serverovém prostředí.
Psaní velkých a pohotově reagujících aplikací .NET Framework Poskytuje tipy pro zvýšení výkonu shromážděné od přepsání kompilátorů jazyka C# a Visual Basic ve spravovaném kódu a obsahuje několik skutečných příkladů z kompilátoru jazyka C#.