We recommend using Visual Studio 2017



The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at VSPerfReport.

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.

UReport output and redirected console output are written as Unicode. Must be the first option specified.
Summary:[types]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.
XmlOutput report in XML format.
CallTraceCreates a list of function entry and exits, ETW events, and marks.
ClearPackedSymbolsRemoves previously embedded symbols from a profiler data file. Run this command before running PackSymbols a second time.
SymbolPath: pathSpecifies one or more search paths or symbol servers that contain symbols for the profiler data file.
DebugSymPathLists the locations that are searched for symbols and whether they are found. This option is useful to resolve symbol resolution issues.
PackSymbolsSaves symbols into the profiling data (.vsp) file so that symbol (.pdb) files are not required for analysis.
Output: path|filenameSpecifies an alternate location for the generated report files. By default, reports are created in the current directory.
SummaryFileAnalyze and save the analyzed information in a .vsps summary file.
PrintMarksShow the names and timestamps for all marks in the specified report file.
?Displays usage information.
NoLogoHides version information when the report is running.
UserRulesDirectorySpecifies directory containing user-defined performance rules [Not yet implemented].

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

JustMyCode[:[caller][,callee]]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.
StartTime:[value]Only show data collected after value (in milliseconds.)
EndTime:[value]Only show data collected before value (in milliseconds.)
FilterFile: VSPFFileSpecifies the location of a filter file that was generated from the Visual Studio Performance Report window.
MsFilter:[starttime,duration]Only show data from starttime until the length of duration (in milliseconds.)
Process:[pid]Only show data from the specified process.
Thread:[threadid]Only show data from the specified thread.
Thread:[threadid,processid]Only show data from the specified thread associated with the specified process.

The following table describes the options for comparing report files.

Diff  vspfile1 vspfile2Compare two report files (.vsp or .vsps) files. Summary options will be ignored using the diff option.
Diff:[value]Below this threshold value the difference between two values will be disregarded. Also, new data with values under this threshold will not be shown.
DiffTable:[tablename]Use this specific table to compare files. The default is the functions table.
DiffColumn:[columnname]Use this specific column compare values. The default is the exclusive samples percent column.
QueryDiffTablesList the valid tables and columns for the two report files provided.

Performance Report Views