We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

Using Profiling Methods to Collect Performance Data from the Command Line

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.

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.

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

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.

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.

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