Command-line profiling of ASP.NET web applications

Applies to: yesVisual Studio noVisual Studio for Mac


This article applies to Visual Studio 2017. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

This section describes the procedures and options for collecting performance data for ASP.NET web applications by using Visual Studio Profiling Tools from the command line.


Enhanced security features in Windows 8 and Windows Server 2012 required significant changes in the way the Visual Studio profiler collects data on these platforms. UWP apps also require new collection techniques. See Performance tools on Windows 8 and Windows Server 2012 applications.

Common tasks

Task Related Content
Collect basic ASP.NET profiling data easily: Use the VSPerfASPNETCmd tool to collect sampling, instrumentation, .NET memory, contention, or tier interaction data without the configuration requirements and the Internet Information Services (IIS) restarts that are needed for VSPerfCmd. VSPerfASPNETCmd does not allow you to collect additional data or to control data collection. Note: VSPerfASPNETCmd is the preferred tool to use you use the standalone profiler to profile ASP.NET web sites. - Rapid web site profiling with VSPerfASPNETCmd
Collect application statistics: Use the sampling method to collect performance statistics. Sampling data is useful for analyzing CPU usage issues and for understanding the general performance characteristics of an application. - Collect application statistics using sampling
Collect detailed timing data: Use the instrumentation method to collect detailed timing information. Instrumentation data is useful for analyzing IO issues and for fine-grained analysis of application scenarios. - Collect detailed timing data using instrumentation
Collect .NET memory data: Use sampling or instrumentation to collect .NET memory allocation data that shows you the size and number of allocated objects. You can also collect object lifetime data that shows you the size and number of objects that are reclaimed in each garbage collection generation. - Collect memory data
Collect concurrency data: Use the concurrency method to collect resource contention data. Note: Collecting thread activity and visualization data is not supported for web applications. - Collect concurrency data
Add tier interaction data: You can add performance data about synchronous ADO.NET calls that the ASP.NET web application makes to a Microsoft SQL Server database. - Collect tier interaction data
Task Related Content
Profile stand-alone (client) applications - Profile stand-alone applications
Profile services - Profile services