3.1 KiB
title | author | description | monikerRange | ms.author | ms.date | uid |
---|---|---|---|---|---|---|
Performance Diagnostics Tools | mjrousos | Useful tools for diagnosing performance issues in ASP.NET Core apps. | >= aspnetcore-1.1 | riande | 12/07/2018 | performance/diagnostic-tools |
Performance Diagnostic Tools
By Mike Rousos
This article lists tools for diagnosing performance issues in ASP.NET Core.
Visual Studio Diagnostic Tools
The profiling and diagnostic tools built into Visual Studio are a good place to start investigating performance issues. These tools are powerful and convenient to use from the Visual Studio development environment. The tooling allows analysis of CPU usage, memory usage, and performance events in ASP.NET Core apps.
More information is available in Visual Studio documentation.
Application Insights
Application Insights provides in-depth performance data for your app. Application Insights automatically collects data on response rates, failure rates, dependency response times, and more. Application Insights supports logging custom events and metrics specific to your app.
Application Insights can be used in a variety environments:
- Optimized to work in Azure.
- Works in production, development, and staging.
- Works locally from Visual Studio or in other hosting environments.
For more information, see Application Insights for ASP.NET Core.
PerfView
PerfView is a performance analysis tool created by the .NET team specifically for diagnosing .NET performance issues. PerfView allows analysis of CPU usage, memory and GC behavior, performance events, and wall clock time.
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.
PerfCollect
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 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 is useful when performance problems show up in Linux environments where PerfView can't be used directly. Instead, PerfCollect can collect traces from .NET Core apps that are then analyzed on a Windows computer using PerfView.
More information about how to install and get started with PerfCollect is available on GitHub.