This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, use the version selector at the top left. We recommend upgrading to Visual Studio 2019. Download it here
The VSPerfCmd.exe tool is used to start and stop performance data collection. It uses the following syntax:
VSPerfCmd [/U] [/options]
The following tables describe VSPerfCmd.exe tool options.
|U||Redirected console output is written as Unicode. Must be the first option specified.|
||Starts the profiling service in the specified mode.|
||Specifies the output file name. Use only with Start.|
|CrossSession|CS||Enables profiling across Windows sessions. Use only with Start, Attach, or Launch.|
||Enables the specified account access to the profiler service. Use only with Start.|
||Waits for the data collection logger to initialize. If
||When the sample profiling method is used, specifies a CPU counter and the number of events to use as the sampling interval. You can sample only one counter value.
When the instrumentation profiling method is used, specifies a CPU counter to be collected at each instrumentation point. Use only with Start:
|QueryCounters||Displays a list of valid CPU counters for the current machine.|
|WinCounter : path||Specifies a Windows performance counter event to include with profile mark data. Use only with Start.|
|AutoMark : n||Specifies the time interval (in milliseconds) between Windows performance counter data collection events. Use with WinCounter.|
||Controls collection of specified Event Tracing for Windows (ETW) events. ETW data is collected to an .itl file that is not the profiling data (.vsp) file.|
|Status||Displays the state of the profiler, information about processes that are currently being profiled, and accounts that have authority to control the profiler.|
||Closes the profiling data file and turns the profiler off.|
|GlobalOn||Resumes data collection after a call to VSPerfCmdGlobalOff.|
|GlobalOff||Stops all data collection, but does not end the profiling session.|
||Resumes data collection for the specified process after profiling was paused by a call to VSPerfCmdProcessOff.|
||Stops data collection for the specified process.|
|ThreadOn and ThreadOff : tid||Resumes profiling for the specified process after profiling was paused by a call to VSPerfCmdThreadOff. Use ThreadOn only when profiling with the instrumentation method.|
|ThreadOn and ThreadOff : tid||Pauses profiling for the specified thread. Use ThreadOff only when profiling with the instrumentation method.|
|Mark : MarkNum[,MarkText]||Inserts a mark into the profiling data file, with optional text.|
Sampling Method Options
The following options are only available when you are using the sampling profiling method.
|Launch : Executable||Starts the specified application and begins profiling.|
|Args : Arguments||Specifies command line arguments to pass to the launched application.|
|Console||Starts the specified command in a new command prompt window.|
|Attach : PID[,PID]||Begins profiling the specified processes. Processes can be identified by the process id or by the process name.|
|Detach[:PID[,PID]]||Stops profiling the specified processes. Processes can be identified by the process id or by the process name. If no process is specified, profiling is halted for all processes.|
||Collects .NET memory allocation and object lifetime data. Use only with the VSPerfCmdLaunch option.|
Sampling Interval Options
The following options specify the type and duration of sampling intervals. The default is Timer. You can also specify a CPU counter as the interval by using the Counter option. These options can only be specified with Launch or with the first Attach of a profiling session.
|PF[:n]||Samples on every n-th page fault (default=10).|
|Sys[:n]||Samples on every n-th system call (default=10).|
|Timer[:n]||Samples on every n-th processor cycle (default=10000000).|
Service Component and Kernel Mode Device Options
The following Admin options support profiling service components or kernel mode device drivers. The Admin options set profiling permissions and control the profiled service or device driver.
Admin options must be executed at a command prompt that is running with administrative credentials.
|Admin:Security <ALLOW|DENY> Right[ Right] <User|Group>||Allows or denies the specified user or group access to profiling services.
CrossSession - gives the user access to the service to do cross session profiling.
SampleProfiling - gives the user access to the driver to enable sampling profiling. Also used to access kernel transition information during trace profiling.
FullAccess - gives the user both CrossSession and SampleProfiling access.
|Admin:Security, List||Lists the current state of profiling services and lists user permissions.|
|Admin: <Service|Driver><START|STOP|INSTALL|UNINSTALL>||Starts, stops, installs, or uninstalls the profiling service component (service) or kernel mode device driver (driver).|
|Admin: <Service|Driver>AutoStart<ON|OFF>||Enables or disables automatically starting the profiling service (service) or kernel mode device driver (driver) after a restart.|
The VSPerfCmd /Driver option is now obsolete. Use the VsPerfCmdAdmin options for this functionality.