Reading time: | 15 min |
Last updated: | 25 Apr 2025 |
Reading time: |
15 min |
Last updated: |
25 Apr 2025 |
This guide is intended to get you up and running with this tool quickly with the most common settings. For a thorough review of all options, refer to the official documentation.
WindowsPerf is a Linux Perf-inspired Windows on Arm performance profiling tool. Profiling is based on the Arm AArch64 PMU and its hardware counters. WindowsPerf supports the counting model for obtaining aggregate counts of occurrences of PMU events, and the sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and instruction levels. WindowsPerf is an open-source project hosted on GitLab
WindowsPerf consists of a kernel-mode driver and a user-space command-line tool. You can seamlessly integrate the WindowsPerf command line tool with both the WindowsPerf Visual Studio Extension and the WindowsPerf VS Code Extension . These extensions, which you can download from the Visual Studio Marketplace, enhance the functionality of WindowsPerf by providing a user-friendly interface, and additional features for performance analysis and debugging. This integration allows developers to efficiently analyze and optimize their applications directly within their preferred development environment.
You cannot use WindowsPerf on virtual machines, such as cloud instances.
You can now install WindowsPerf directly from
winget
. Open an Administrator
terminal on PowerShell and type
winget install WindowsPerf
The output should look like:
Found WindowsPerf [Arm.WindowsPerf] Version 4.3.1.0
This application is licensed to you by its owner.
Microsoft is not responsible for, nor does it grant any licenses to, third-party packages.
Downloading https://developer.arm.com/-/cdn-downloads/permalink/WindowsPerf/Installer/windowsperf-4.3.1.msi
3.07 MB
Successfully verified installer hash
Starting package install...
Successfully installed
It will install the latest available WindowsPerf along with the WPA plugins . To check that the installation was done correctly open a new terminal tab or window and follow the instructions under the verify installation section
If you need to uninstall WindowsPerf, open an Administrator
terminal on PowerShell and run:
winget uninstall WindowsPerf
The output from a successful uninstallation will look like:
Found WindowsPerf [Arm.WindowsPerf]
Starting package uninstall...
Successfully uninstalled
WinPerf is an open-source project. If you would like to develop WindowsPerf yourself, you may also need to install the Windows Driver Kit (WDK). Please refer to this link for more details. https://learn.microsoft.com/en-us/windows-hardware/drivers/wdk-release-notes
You can check everything is working by running the wperf
executable.
Once you have installed the driver, you can use wperf
without Administrator
privileges.
For example:
wperf --version
You see output similar to:
Component Version GitVer FeatureString
========= ======= ====== =============
wperf 4.0.0 b18197bd +etw-app
wperf-driver 4.0.0 b18197bd +etw-drv
WindowsPerf GUI (Graphical User Interface) is a Visual Studio 2022 extension designed to bring a seamless UI experience to WindowsPerf, the command-line performance profiling tool for Windows on Arm. It is available on the Visual Studio Marketplace .
Install by opening Extensions menu, click Manage Extensions, and click Browse. Type WindowsPerf
to search for Arm WindowsPerf GUI extension. Click Install.
In order to set the path to the wperf.exe
executable, go to Tools -> Options -> WindowsPerf -> WindowsPerf Path and set the absolute path to the wperf.exe executable and then click on the Validate button.
Also, visit WindowsPerf GUI project website on GitLab for more details and latest updates.
In addition to the command-line tools, WindowsPerf
is available on the
VS Code Marketplace
.
Install by opening the Extensions view (Ctrl+Shift+X) and searching for WindowsPerf
. Click Install.
Open Settings (Ctrl+,) > Extensions > WindowsPerf, and specify the path to the wperf
executable.
You can only generate reports from a Windows on Arm device.
If using a non-Windows on Arm host, you can import and analyze WindowsPerf
JSON reports from such devices.
You do not need to install wperf
on non-Windows on Arm devices.
How would you rate this tool quick-install guide?
What is the primary reason for your feedback ?
Thank you! We're grateful for your feedback.