narzędzia diagnostyczne wydajnościPerformance Diagnostic Tools

Według Jan RousosBy Mike Rousos

W tym artykule wymieniono narzędzia służące do diagnozowania problemów z wydajnością w ASP.NET Core.This article lists tools for diagnosing performance issues in ASP.NET Core.

narzędzia diagnostyczne programu Visual StudioVisual Studio Diagnostic Tools

Narzędzia profilowania i diagnostyki wbudowane w program Visual Studio są dobrym miejscem do rozpoczęcia badania problemów z wydajnością.The profiling and diagnostic tools built into Visual Studio are a good place to start investigating performance issues. Te narzędzia są zaawansowane i wygodne do użycia w środowisku deweloperskim programu Visual Studio.These tools are powerful and convenient to use from the Visual Studio development environment. Narzędzia umożliwiają analizę użycia procesora CPU, użycie pamięci i zdarzeń wydajności w aplikacjach ASP.NET Core.The tooling allows analysis of CPU usage, memory usage, and performance events in ASP.NET Core apps. Wbudowana, sprawia, że profilowanie jest łatwe w czasie projektowania.Being built-in makes profiling easy at development time.

Więcej informacji można znaleźć w dokumentacji programu Visual Studio.More information is available in Visual Studio documentation.

Application InsightsApplication Insights

Application Insights zapewnia szczegółowe dane dotyczące wydajności dla aplikacji.Application Insights provides in-depth performance data for your app. Application Insights automatycznie zbiera dane dotyczące stawek odpowiedzi, stawek niepowodzeń, czasów odpowiedzi zależności i nie tylko.Application Insights automatically collects data on response rates, failure rates, dependency response times, and more. Application Insights obsługuje rejestrowanie zdarzeń niestandardowych i metryk specyficznych dla aplikacji.Application Insights supports logging custom events and metrics specific to your app.

Usługa Azure Application Insights zapewnia wiele sposobów uzyskania wglądu w monitorowane aplikacje:Azure Application Insights provides multiple ways to give insights on monitored apps:

  • Mapa aplikacji — umożliwia wychwycenie wąskich gardeł wydajności lub odporności na awarie we wszystkich składnikach aplikacji rozproszonych.Application Map – helps spot performance bottlenecks or failure hot-spots across all components of distributed apps.

  • Eksplorator metryk platformy Azure to składnik Microsoft Azure Portal, który umożliwia Wykreślanie wykresów, wizualne skorelowanie trendów oraz badanie skoków i wartości DIP w ramach metryk.Azure Metrics Explorer is a component of the Microsoft Azure portal that allows plotting charts, visually correlating trends, and investigating spikes and dips in metrics' values.

  • Blok wydajności w portalu Application Insights:Performance blade in Application Insights portal:

    • Przedstawia szczegóły wydajności dla różnych operacji w monitorowanej aplikacji.Shows performance details for different operations in the monitored app.
    • Umożliwia przechodzenie do szczegółów pojedynczej operacji w celu sprawdzenia wszystkich części/zależności, które przyczyniają się do długiego czasu trwania.Allows drilling into a single operation to check all parts/dependencies that contribute to a long duration.
    • Profiler można wywołać z tego miejsca, aby zbierać dane śledzenia wydajności na żądanie.Profiler can be invoked from here to collect performance traces on-demand.
  • Usługa Azure Application Insights Profiler umożliwia regularne i na żądanie profilowania aplikacji .NET.Azure Application Insights Profiler allows regular and on-demand profiling of .NET apps. Azure Portal przedstawia przechwycone dane śledzenia wydajności za pomocą stosów wywołań i ścieżek aktywnych.Azure portal shows captured performance traces with call stacks and hot paths. Pliki śledzenia można także pobrać w celu uzyskania dokładniejszej analizy przy użyciu narzędzia PerfView.The trace files can also be downloaded for deeper analysis using PerfView.

Application Insights można używać w środowiskach różnych:Application Insights can be used in a variety environments:

  • Zoptymalizowane pod kątem pracy na platformie Azure.Optimized to work in Azure.
  • Działa w środowisku produkcyjnym, opracowywaniu i przemieszczania.Works in production, development, and staging.
  • Działa lokalnie z programu Visual Studio lub w innych środowiskach hostingu.Works locally from Visual Studio or in other hosting environments.

Aby uzyskać więcej informacji, zobacz Application Insights ASP.NET Core.For more information, see Application Insights for ASP.NET Core.

Narzędzia PerfViewPerfView

Narzędzia PerfView to narzędzie do analizy wydajności utworzone przez zespół .NET przeznaczony do diagnozowania problemów z wydajnością programu .NET.PerfView is a performance analysis tool created by the .NET team specifically for diagnosing .NET performance issues. Narzędzia PerfView umożliwia analizę użycia procesora CPU, pamięci i zachowania GC, zdarzeń wydajności i czasu zegara ściany.PerfView allows analysis of CPU usage, memory and GC behavior, performance events, and wall clock time.

Możesz dowiedzieć się więcej na temat narzędzia PerfView oraz jak zacząć korzystać z samouczków wideo narzędzia PerfView lub odczytując Podręcznik użytkownika dostępny w narzędziu lub witrynie GitHub.You can learn more about PerfView and how to get started with PerfView video tutorials or by reading the user's guide available in the tool or on GitHub.

Zestaw narzędzi wydajności systemu WindowsWindows Performance Toolkit

Zestaw narzędzi wydajności systemu Windows (WPT) składa się z dwóch składników: Windows Performance Recorder (WP) i Windows Performance ANALYZER (WPA).Windows Performance Toolkit (WPT) consists of two components: Windows Performance Recorder (WPR) and Windows Performance Analyzer (WPA). Narzędzia te tworzą szczegółowe profile wydajności systemów operacyjnych i aplikacji systemu Windows.The tools produce in-depth performance profiles of Windows operating systems and apps. WPT ma bogatsze sposoby wizualizacji danych, ale gromadzenie danych jest mniej wydajne niż narzędzia PerfView.WPT has richer ways of visualizing data, but its data collecting is less powerful than PerfView's.

PerfCollectPerfCollect

Chociaż narzędzia PerfView to przydatne narzędzie do analizy wydajności dla scenariuszy platformy .NET, działa ono tylko w systemie Windows, więc nie można używać go do zbierania śladów z ASP.NET Core aplikacji działających w środowiskach systemu Linux.While PerfView is a useful performance analysis tool for .NET scenarios, it only runs on Windows so you can't use it to collect traces from ASP.NET Core apps running in Linux environments.

PerfCollect to skrypt bash, który używa natywnych narzędzi profilowania systemu Linux (perf i LTTng) do zbierania śladów w systemie Linux, które mogą być analizowane przez narzędzia PerfView.PerfCollect is a bash script that uses native Linux profiling tools (Perf and LTTng) to collect traces on Linux that can be analyzed by PerfView. PerfCollect jest przydatne w przypadku wyświetlenia problemów z wydajnością w środowiskach systemu Linux, w których nie można bezpośrednio użyć narzędzia PerfView.PerfCollect is useful when performance problems show up in Linux environments where PerfView can't be used directly. Zamiast tego PerfCollect może zbierać ślady z aplikacji .NET Core, które są następnie analizowane na komputerze z systemem Windows przy użyciu narzędzia PerfView.Instead, PerfCollect can collect traces from .NET Core apps that are then analyzed on a Windows computer using PerfView.

Więcej informacji o sposobie instalowania i rozpoczynania pracy z usługą PerfCollect jest dostępnych w witrynie GitHub.More information about how to install and get started with PerfCollect is available on GitHub.

Inne narzędzia do oceny wydajności innych firmOther Third-party Performance Tools

Poniżej wymieniono niektóre narzędzia do oceny wydajności innych firm, które są przydatne podczas badania wydajności aplikacji .NET Core.The following lists some third-party performance tools that are useful in performance investigation of .NET Core applications.