Wydajność środowiska .NET Framework

Jeśli chcesz tworzyć aplikacje o doskonałej wydajności, należy zaprojektować i zaplanować wydajność tak samo jak w przypadku każdej innej funkcji aplikacji. Za pomocą narzędzi dostarczonych przez firmę Microsoft możesz mierzyć wydajność aplikacji, a w razie potrzeby wprowadzić ulepszenia dotyczące użycia pamięci, przepływności kodu i czasu odpowiedzi. W tym temacie wymieniono narzędzia do analizy wydajności, które udostępnia firma Microsoft, oraz linki do innych tematów, które obejmują wydajność dla określonych obszarów tworzenia aplikacji.

Projektowanie i planowanie wydajności

Jeśli potrzebujesz doskonałej aplikacji, musisz zaprojektować wydajność w aplikacji tak samo, jak w przypadku projektowania dowolnej innej funkcji. Należy określić scenariusze krytyczne dla wydajności w aplikacji, ustawić cele wydajności i mierzyć wydajność dla tych scenariuszy aplikacji na początku i często. Ponieważ każda aplikacja jest inna i ma różne ścieżki wykonywania krytyczne dla wydajności, określenie tych ścieżek wcześnie i skupienie wysiłków pozwala zmaksymalizować produktywność.

Nie musisz być całkowicie zaznajomiony z platformą docelową, aby utworzyć aplikację o wysokiej wydajności. Należy jednak opracować zrozumienie, które części platformy docelowej są kosztowne pod względem wydajności. Można to zrobić, mierząc wydajność na wczesnym etapie procesu programowania.

Aby określić obszary, które mają kluczowe znaczenie dla wydajności i ustanowić cele wydajności, zawsze należy wziąć pod uwagę środowisko użytkownika. Czas uruchamiania i czas odpowiedzi to dwa kluczowe obszary, które będą wpływać na postrzeganie aplikacji przez użytkownika. Jeśli aplikacja korzysta z dużej ilości pamięci, może wydawać się powolny dla użytkownika lub wpływać na inne aplikacje uruchomione w systemie lub w niektórych przypadkach może zakończyć się niepowodzeniem Windows Store lub Windows Phone Proces przesyłania ze Sklepu. Ponadto, jeśli określisz, które części kodu są wykonywane częściej, możesz upewnić się, że te części kodu są dobrze zoptymalizowane.

Analizowanie wydajności

W ramach ogólnego planu programowania ustaw punkty podczas programowania, w których będziesz mierzyć wydajność aplikacji i porównać wyniki z ustawionymi wcześniej celami. Mierzenie aplikacji w środowisku i sprzęcie, który oczekujesz od użytkowników. Analizując wydajność aplikacji na wczesnym etapie i często możesz zmienić decyzje dotyczące architektury, które byłyby kosztowne i kosztowne w dalszej części cyklu programowania. W poniższych sekcjach opisano narzędzia do wydajności, których można użyć do analizowania aplikacji i omówienia śledzenia zdarzeń, które są używane przez te narzędzia.

Narzędzia wydajności

Poniżej przedstawiono niektóre narzędzia do wydajności, których można używać z aplikacjami .NET Framework.

Narzędzie Opis
analiza wydajności Visual Studio Służy do analizowania użycia procesora CPU .NET Framework aplikacji, które zostaną wdrożone na komputerach z systemem operacyjnym Windows.

To narzędzie jest dostępne w menu Debugowanie w Visual Studio po otwarciu projektu. Aby uzyskać więcej informacji, zobacz Eksplorator wydajności. Uwaga: Użyj Windows Phone Analizy aplikacji (zobacz następny wiersz) podczas określania wartości docelowej Windows Phone.
analiza aplikacji Windows Phone Służy do analizowania procesora CPU i pamięci, szybkości transferu danych sieciowych, reakcji aplikacji i zużycia baterii w aplikacjach Windows Phone.

To narzędzie jest dostępne w menu Debugowanie projektu Windows Phone w Visual Studio po zainstalowaniu zestawu WINDOWS PHONE SDK. Aby uzyskać więcej informacji, zobacz Profilowanie aplikacji dla Windows Phone 8.
Perfview Służy do identyfikowania problemów z wydajnością związanych z procesorem CPU i pamięcią. To narzędzie używa śledzenia zdarzeń dla interfejsów API profilowania Windows (ETW) i CLR w celu zapewnienia zaawansowanych badań dotyczących pamięci i procesora CPU, a także informacji na temat odzyskiwania pamięci i kompilacji JIT. Aby uzyskać więcej informacji na temat korzystania z narzędzia PerfView, zobacz wpisy w blogu.

Aby uzyskać informacje o problemach specyficznych dla pamięci, zobacz Using PerfView for Memory Investigations (Używanie elementu PerfView do badania pamięci).
Windows Analizator wydajności Służy do określania ogólnej wydajności systemu, takiej jak pamięć aplikacji i użycie magazynu, gdy na tym samym komputerze jest uruchomionych wiele aplikacji. To narzędzie jest dostępne w centrum pobierania w ramach zestawu Windows Assessment and Deployment Kit (ADK) dla Windows 8. Aby uzyskać więcej informacji, zobacz Windows Analizator wydajności.

Śledzenie zdarzeń dla Windows (ETW)

ETW to technika, która umożliwia uzyskanie informacji diagnostycznych na temat uruchamiania kodu i jest niezbędna dla wielu wcześniej wymienionych narzędzi do wydajności. Funkcja ETW tworzy dzienniki, gdy określone zdarzenia są wywoływane przez aplikacje .NET Framework i Windows. Dzięki funkcji ETW można dynamicznie włączać i wyłączać rejestrowanie, dzięki czemu można wykonywać szczegółowe śledzenie w środowisku produkcyjnym bez ponownego uruchamiania aplikacji. .NET Framework oferuje obsługę zdarzeń ETW, a etW jest używany przez wiele narzędzi profilowania i wydajności do generowania danych wydajności. Te narzędzia często włączają i wyłączają zdarzenia ETW, więc znajomość z nimi jest przydatna. Możesz użyć określonych zdarzeń ETW, aby zebrać informacje o wydajności dotyczące określonych składników aplikacji. Aby uzyskać więcej informacji na temat obsługi funkcji ETW w .NET Framework, zobacz Zdarzenia ETW w środowisku uruchomieniowym języka wspólnego i zdarzenia ETW w bibliotece równoległej zadań i PLINQ.

Wydajność przez typ aplikacji

Każdy typ aplikacji .NET Framework ma własne najlepsze rozwiązania, zagadnienia i narzędzia do oceny wydajności. Poniższa tabela zawiera linki do tematów dotyczących wydajności określonych typów aplikacji .NET Framework.

Typ aplikacji Zobacz
.NET Framework aplikacje dla wszystkich platform Odzyskiwanie pamięci i wydajność

Wskazówki wydajności
aplikacje ze sklepu Windows 8.x napisane w języku C++, C# i Visual Basic Najlepsze rozwiązania dotyczące wydajności aplikacji ze sklepu Windows Store przy użyciu języków C++, C# i Visual Basic
Windows Presentation Foundation (WPF) Pakiet wydajności WPF
ASP.NET ASP.NET Performance Overview (Omówienie wydajności ASP.NET)
Tytuł Opis
Buforowanie w aplikacjach .NET Framework Opisuje techniki buforowania danych w celu zwiększenia wydajności w aplikacji.
Inicjalizacja z opóźnieniem Opisuje sposób inicjowania obiektów zgodnie z potrzebami w celu zwiększenia wydajności, szczególnie podczas uruchamiania aplikacji.
Niezawodność Zawiera informacje o zapobieganiu wyjątkom asynchronicznym w środowisku serwera.
Pisanie dużych i sprawnie działających aplikacji platformy .NET Framework Zawiera porady dotyczące wydajności zebrane podczas ponownego zapisywania języka C# i Visual Basic kompilatorów w kodzie zarządzanym oraz zawiera kilka rzeczywistych przykładów z kompilatora języka C#.