Get started with WindowsPerf
Who is this for?
This is an introductory topic for software developers working on laptops and desktops and new to the Arm architecture.
What will you learn?
Upon completion of this Learning Path, you will be able to:
- Install WindowsPerf on Windows on Arm machine
- Generate a sample report
Prerequisites
Before starting, you will need the following:
- Windows on Arm desktop or development machine
Summary
This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
You’ll install WindowsPerf on Windows on Arm and use
wperf to generate performance reports. First, you’ll collect aggregate Arm PMU event counts with wperf stat, then use wperf sample or wperf record to attribute activity to functions, basic blocks, or instructions. You’ll select events, pin measurements to a core, and interpret the resulting profiling data.Frequently asked questions
These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.
Start with a short counting run using
wperf stat on a few events for a brief timeout. For example, use inst_spec, vfp_spec, ase_spec, and ld_spec to confirm you see nonzero aggregate counts without errors.Use
wperf stat to obtain aggregate counts of PMU events over a measurement window. Use wperf sample or wperf record to collect samples that show where events occur at the function, basic block, or instruction level.Select the core with the
-c option (for example, -c 0) and control the run length with --timeout. Pick values that cover the code you want to observe during the measurement window.Sampling output attributes PMU event occurrences to program locations at the function, basic block, or instruction levels. If you see only totals, verify that you used a sampling command rather than
wperf stat.The examples use
inst_spec, vfp_spec, ase_spec, and ld_spec, and include the imix metric, which groups related events. You can also add an additional event such as l1i_c.