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


VSPerfReport command line tool is used to create reports using Visual Studio Profiling Tools profiling data files. The default report format is a .csv file.

VSPerfReport uses the following syntax:

VSPerfReport [/U] vspfilename [/options]

Note that filename must be a valid .vsp or .vsps file.

The VSPerfReport command line tool is also used to compare .vsp or .vsps files. To generate a difference ("diff") report, use the following syntax:

VSPerfReport [/U] /diff vspfilename1 vspfilename2 [/options]

vspfilename1 and vspfilename2 must be valid .vsp or .vsps files.

To display symbol information such as function names and line numbers, VSPerfReport requires access to the symbol (.PDB) files of the profiled components and to Windows symbol files. For more information, see How to: Specify Symbol File Locations from the Command Line.

The following table describes the general report formatting options and the options that select the data to be reported.




Report output and redirected console output are written as Unicode. Must be the first option specified.


Creates one or more types of reports.

  • All - all report types are generated.

  • CallerCallee - parent/child relationships between functions.

  • Function - functions called.

  • CallTree - hierarchy of functions called.

  • Counter - all marks together with Windows performance counter values.

  • Ip - instructions profiled.

  • Life - lifetime of allocated objects (available when allocation data has been collected.)

  • Line source code line profile data.

  • Header - report contains file header information.

  • Mark all marks.

  • Module - modules profiled.

  • Process - processes profiled.

  • Thread - threads profiled.

  • Type - allocated types.

  • Contention - resource contentions.

  • RuleWarnings - performance rule issues

  • ETW - all Event Tracing for Windows (ETW) events collected in the profiling run. The .etl data file must be in its original location or in the directory containing the .vsp or .vsps file.


Output report in XML format.


Creates a list of function entry and exits, ETW events, and marks.


Removes previously embedded symbols from a profiler data file. Run this command before running PackSymbols a second time.

SymbolPath: path

Specifies one or more search paths or symbol servers that contain symbols for the profiler data file.


Lists the locations that are searched for symbols and whether they are found. This option is useful to resolve symbol resolution issues.


Saves symbols into the profiling data (.vsp) file so that symbol (.pdb) files are not required for analysis.

Output: path|filename

Specifies an alternate location for the generated report files. By default, reports are created in the current directory.


Analyze and save the analyzed information in a .vsps summary file.


Show the names and timestamps for all marks in the specified report file.


Displays usage information.


Hides version information when the report is running.


Specifies directory containing user-defined performance rules [Not yet implemented].

The following table describes the options to filter the available data.




Only show user application function calls; hide system calls.

  • No parameters - hide all system functions.

  • caller - show one level of system functions that call application functions.

  • callee - show one level of system functions that are called by user application functions.


Only show data collected after value (in milliseconds.)


Only show data collected before value (in milliseconds.)

FilterFile: VSPFFile

Specifies the location of a filter file that was generated from the Visual Studio Performance Report window.


Only show data from starttime until the length of duration (in milliseconds.)


Only show data from the specified process.


Only show data from the specified thread.


Only show data from the specified thread associated with the specified process.

The following table describes the options for comparing report files.



Diff vspfile1 vspfile2

Compare two report files (.vsp or .vsps) files. Summary options will be ignored using the diff option.


Below this threshold value the difference between two values will be disregarded. Also, new data with values under this threshold will not be shown.


Use this specific table to compare files. The default is the functions table.


Use this specific column compare values. The default is the exclusive samples percent column.


List the valid tables and columns for the two report files provided.