Repository navigation
Debugging Tool Xperf
← Debugging Tools and Commands
xperf provides fast command-line inspection of ETL health, sampled profiles, process/thread inventory, and context-switch events.
| Property | Details |
|---|---|
| Supported OS | Windows. |
| Install | Install the Windows Performance Toolkit feature from the Windows ADK. |
| Verify | xperf -help |
| Primary output | See the workflow below. |
xperf is useful for quick trace statistics, sampled-profile summaries, process information, and context-switch exports.
Official action reference: https://learn.microsoft.com/windows-hardware/test/wpt/xperf-actions
xperf -i .\xemu-lag.etl -a tracestatsUse this to inspect the trace/event inventory and help confirm whether expected event classes were captured.
xperf -i .\xemu-lag.etl -a profile -detailRestrict to a measurement interval, where the range is in microseconds relative to the trace timeline:
xperf -i .\xemu-lag.etl -a profile -detail -range 21796062 41805107-detail groups profile samples by process/module, or by decoded function when symbol decoding is available.
Important trap from our investigations: Usage% in the profile report can use all logical CPUs as its denominator. It is not necessarily “percent of one xemu thread.”
Use the profile to identify hot regions, then move to thread-bounded analysis rather than treating a system-wide percentage as the final result.
xperf -i .\xemu-lag.etl -a cswitch -range 21796062 41805107Initial cswitch output is system-wide. It does not automatically isolate PFIFO or distinguish its waiting time from scheduling delay.
xperf -i .\xemu-lag.etl -a processUse PID/TID identity from the trace rather than assuming the same PID from a different run.
On the WPT version used in one investigation, xperf -a gpu was rejected as an unsupported action. That did not prove the ETL lacked GPU events; GPU data was later extracted with WPAExporter.
Separate “this CLI action is unavailable” from “the trace contains no data.”
Treat xperf as an interrogation tool, not an automatic causal analyzer. Initial output can be system-wide; apply the correct PID/TID and interval.
An unsupported xperf action does not prove the ETL lacks that event class. Use WPA/WPAExporter when xperf cannot decode a captured provider.
- Tool name and exact version.
- Source commit/tree and executable SHA-256.
- The complete command or saved profile used.
- Input artifact hashes and the explicitly selected time or address range.
- Raw output plus any derived report; do not retain only a screenshot or conclusion.
- Admission failures, warnings, dropped events, incomplete rows, or unsupported operations.
DSP tooling guide and navigation updated November 2, 2026 for experimental PR #384, source 8f51d237. Capture/replay usage and limits.
The earlier wiki-wide review was published November 1, 2026. Emulator source: b7140848. Reviewed wiki content: 1d2b671. Current status · Release availability · Publication process.
- Home
- Current status
- Stable versus main
- Implemented mechanisms
- Controls and defaults
- Measured results and limits
- Complete change register
- System
- CPU and vCPU
- Memory and DMA
- Graphics / NV2A
- APU and audio
- Timing and timers
- Platform and I/O
- Hardware observations
- Fidelity boundaries
- Methodology
- PGR2 routes
- Debugging lag / hot paths
- Tools and commands
- DSP capture, replay and fuzzing
- HLE readiness and public XISO proof
- Concurrent DSP shadow and OpenAL proof
- DSP HLE operation inventory
- DSP HLE fix examples and testing
- Development
- Upstream shortlist
- Wiki maintenance
- Research / retired work
- Optimization catalog
- Hot-path shortcuts
- Researched experiments
- Unproven proposal directory
- PR lessons
- September26 snapshot
Repository · PRs · Issues