Use profiling methods to collect performance data from the command line

Applies to: yesVisual Studio noVisual Studio for Mac

Note

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

Your choice of Visual Studio Profiling Tools command-line tools and options depends on factors such as the type of application that you are profiling, the profiling method that you want to use, and whether the target application is written in native or .NET Framework code.

This topic organizes the command-line procedural topics according to the profiling method that you choose.

Use the sampling method to collect performance statistics

The Profiling Tools sampling method collects performance data at specified intervals in a profiling run. Sampling data can provide insights into CPU-bound performance issues, and it can be a good way to start exploring the performance of an application.

You can start the profiler and the application at the same time, or you can attach the profiler to a running instance of an application.

Task Target application type
Launch an application - Stand-alone applications
Attach to a running process - .NET Framework stand-alone applications
- Native stand-alone applications
- ASP.NET web applications
- .NET services
- Native services

Use the instrumentation method to collect detailed timing data

The Profiling Tools instrumentation method collects performance data from copies of application binaries that contain software probes to record performance information. Instrumentation data is collected at the start and end of each instrumented function and at every call to other functions from the instrumented function. The instrumentation method is useful for discovering performance issues with I/O issues such as disk usage.

You create the instrumented binary with the VInstr.exe tool. After you initialize the profiler, data is automatically collected from the instrumented binaries when you run the target application.

Target Application Type

Use .NET memory methods to collect memory allocation and object lifetime data

The Profiling Tools .NET memory method enables you to collect .NET Framework memory allocation data and information about the lifetime of objects in the .NET Framework.

You can start the target application by using the profiler; you can attach the profiler to a running instance of an application; and you can create instrumented versions of the application to collect detailed timing information together with the .NET Framework memory data.

Task Target application type
Launch an application - Stand-alone .NET Framework applications
Attach to a running process - .NET Framework stand-alone applications
- ASP.NET web applications
- .NET services
Instrument modules - .NET Framework stand-alone components
- Statically compiled ASP.NET web applications
- Dynamically compiled ASP.NET web applications
- .NET services

Use the concurrency method to collect resource contention and thread activity data

The Profiling Tools concurrency method enables you to collect resource contention and thread and process activity data from multithreaded applications.

You can start the application by using the profiler, or you can attach the profiler to a running instance of an application.

Task Target application type
Launch an application - Stand-alone .NET Framework application
- Stand-alone native application
Attach to a running process - .NET Framework stand-alone application
- Native stand-alone application
- ASP.NET web application
- .NET service
- Native service

Add tier interaction data to a profiling run

Adding tier interaction data to a profiling run requires specific procedures with the command line profiling tools. See Collect tier interaction data

See also