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

AI-assisted

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.

Close
?
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

AI-assisted

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.

Close
?
Which command should I run first to verify that WindowsPerf is working?
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.
When should I use `wperf stat` versus `wperf sample` or `wperf record`?
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.
How do I choose the CPU core and duration for a measurement?
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.
What result should I expect from a sampling run?
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.
Which events or metrics can I try from the cheat sheet examples?
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.
Next