Actions

Xperf actions are trace processing components that collate event information to produce text reports. Actions produce summarized reports that are specific to a set of events such as registry accesses, context switches, file accesses, or system configuration.

All actions are invoked using the following command-line pattern:

xperf -i input.etl -o output.txt   -a <action_name> [action_parameters] 

Where action_name is the name of the action. The action_name is always preceded by the -a command-line switch. The action name can be followed by one or more action-specific parameters. You can get help for each action by using the following command:

xperf -help <action_name>

WPT offers a large number of actions. You can list all available processing actions by using the built-in command-line help:

xperf -help processing 

The following table summarizes all the actions that are available in version 4.6 of Xperf.

Action name Description
boot
Shows boot and shut down statistics
bootprefetch
Show boot pre-fetching events
cpudisk
CPU/Disk activity report
cswitch
Shows Context Switch data
diskio
Shows disk IO statistics
The DiskIdleHistogram Action
Shows a histogram of disk activity and idle times
dpcisr
Shows DPC/ISR statistics
drvdelay
Shows driver delays
dumper
Dumps events in the trace in text form
filename
Shows file names in the trace
focuschange
Shows the Windows thread focus change events in the trace
hardfault
Shows hard fault statistics by process and file
heap
Shows process heap information. For complete information on Process Heap actions please see Using Actions to Analyze Process Heap Data.
marks
Shows marks information
pagefault
Shows page fault information in the trace
perfctrs
Shows process performance counters
pnp
Shows PnP events in the trace
prefetch
Shows Prefetch information
process
Shows process, thread, image information
profile
Shows sampled profiler data
readyboot
Shows ReadyBoot statistics
registry
Shows registry access statistics
services
Shows service status information
shutdown
Shows shut down statistics
spinlock
Shows Spin Lock information
stack
Shows stack information
suspend
Shows suspend transition information
sysconfig
Shows system configuration
tracestats
Shows trace statistics
winlogon
Shows Winlogon events in the trace

Examples

The following sections provide some examples that show how you can use actions.

Dumping the system configuration

The following command produces a report about system configuration that defines where the trace was taken.

xperf -i input.etl -a sysconfig 

The report includes the following items:

  • Hardware information, for example, the number of cores, processor speed, supported sleep states

  • Partition information about mounted hard disks

  • PnP device trees

  • Services that run on the analyzed system at the time the trace was taken

  • Device IRQs

  • Other configuration details

Registry Access

Accessing the registry can cause unnecessary usage of system memory. You can use the registry action to produce a report about registry activtity. This requires that the trace included the registry kernel events. To invoke this action, run the following command:

xperf -i input.etl -o output.txt -a registry 

The previous command runs the registry action on the input trace file, Input.etl, and produces an output file called Output.txt. Output.txt shows registry access statistics for every 1 millisecond interval in the trace.

CPU and Disk utilization

The cpudisk action produces a report that lists the CPU utilization and some disk I/O statistics for the trace. To generate a cpudisk report so that you can understand the output, run the following command:

xperf -i trace.etl -a cpudisk 

This trace shows you information for every process that was running during the trace session. The processes are sorted by overall CPU utilization. If you are interested in one process only, you can limit the report by using the -exes action option, for example:

xperf -i trace.etl -a cpudisk -exes devenv.exe 

Further filtering can be performed with the -pids action option, which selects only processes that match the given process IDs. The cpudisk action has further options. You can find out all available options of a given action by using the built-in command-line help:

xperf -help cpudisk 

If you want to send the output information to a file, use the -o top-level option to specify an output file name, for example:

xperf -i trace.etl -o report.txt -a cpudisk -exes devenv.exe 

The previous command sends the cpudisk output to the Report.txt file. You can also send the output to a file by using command-line redirection. Xperf provides progress information on the console whenever its output is redirected, unless the -quiet top-level option is specified.

Dumping the events to an ANSI text file

Actions are designed to display reports about traces. However, sometimes it is valuable to just look at the raw trace data. Because ETL files are in a dense binary format, the Xperf tools have a dumper action that moves all the events to an ANSI text file. To move all events into an ANSI text file, run the following command:

xperf -i trace.etl -o trace.txt -a dumper 

This command moves the contents of Trace.etl to the ANSI text file Trace.txt. Be aware that this can take a while for large traces. Xperf displays progress information while the contents are being moved. After the move is complete, view the trace in a text editor. Be aware that Notepad.exe will not open most traces because they are too large for it. The dumper action is so commonly used that it is the default Xperf processing action:

xperf -i trace.etl -o trace.txt 

When you look at Trace.txt, you should see one header line for each event type in the trace. These headers provide titles for each field for each event type in the trace.