Walkthrough: Command-Line Profiling Using Instrumentation
This walkthrough demonstrates how to profile an application by using command-line tools and instrumentation to identify performance problems.
In this walkthrough, you will step through profiling a managed application, and use instrumentation to isolate and identify performance problems in the application. You will follow these steps:
Profile an application by using the instrumentation method.
Analyze instrumented profiling results to locate and fix a performance issue.
Prerequisites
Visual Studio Team System
Intermediate understanding of C#
Intermediate understanding of working with command-line tools
A copy of the PeopleTrax Sample (Profiling Tools)
To work with the information provided by profiling, it is best to have debugging symbol information available.
Command Line Profiling Using the Instrumentation Method
Instrumentation is a profiling method by which specially built versions of the profiled binaries contain probe functions that collect timing information at the entry and exit to functions in an instrumented module. Because this method of profiling is more invasive than sampling, it incurs a greater amount of overhead. Instrumented binaries are also larger than debug or release binaries and are not intended for deployment.
Note
Do not send instrumented binaries to your customers. Instrumented binaries can contain several risks. The binaries include information that makes your application easier to reverse engineer, as well as security risks.
To profile an application by using the instrumentation method
Open a command prompt window. If necessary, add the profiler tools directory to your PATH environment variable. The path is not added at installation.
32 bit computers
On 32 bit computers, the default profiler tools directory is
\Program Files\Microsoft Visual Studio 9.0\Team Tools\Performance Tools.
64 bit computers
On 64 bit computers, specify the path according to the target platform of the application to be profiled.
To profile 32 bit applications, the default profiler tools directory is
\Program Files (x86)\Microsoft Visual Studio 9.0\Team Tools\Performance Tools
To profile 64 bit applications, the default profiler tools directory is
\Program Files (x86)\Microsoft Visual Studio 9.0\Team Tools\Performance Tools\x64
For example, to add the profiler directory to PATH on a 32 bit computer, type
set path=%path%;C:\Program Files\Microsoft Visual Studio 9.0\Team Tools\Performance Tools
To profile a managed application, type the following command to set the appropriate environment variables:
VsPerfCLREnv /traceon
To instrument the application that you want to profile, type the following command:
VSInstr PeopleTrax.exe
Note By default, VSInstr saves a non-instrumented backup of the original file. The backup file name has the extension .orig. For example, the original version of "MyApp.exe" would be saved as "MyApp.exe.orig."
To start the profiler, type the following command:
VsPerfCmd /start:trace /output:Report.vsp
After you start the monitor process in trace mode, run the instrumented version of the PeopleTrax.exe process to collect data.
The PeopleTrax application window appears.
Click Get People.
The PeopleTrax data grid populates with data.
Click Export Data.
Notepad starts and displays a new file that contains a list of people from the PeopleTrax application.
Close Notepad, and then close the PeopleTrax application.
Shut down the profiler. Type the following command:
VSPerfCmd /shutdown
When profiling managed applications, use the following command to reset the environmental variables:
VSPerfCLREnv /off
Analyze the results by using one of the following methods:
Examine the raw .vsp file the Visual Studio IDE.
— or —
Generate Xml or comma-separated value (.csv) report files by using the command-line tool VSPerfReport.exe. To generate reports for use outside the Visual Studio IDE use the following command:VSPerfReport <dir>PeopleTraxReport.vsp /output:<dir> /summary:all
See Also
Concepts
Profiling Tools Performance Session Overview
Understanding Sampling Data Values in Profiling Tools