The Windows on Arm ecosystem continues to grow.
Microsoft has recently announced general availability of Azure Virtual Machines featuring the Ampere Altra Arm-based processor. Windows Dev Kit 2023, known as Project Volterra allows developers to bring app development for Windows on Arm to a capable Windows on Arm device. And the Surface Pro 9 brings together performance and battery life built on the Microsoft SQ 3 processor.
Now is a great time to be a developer for on Arm. We are seeing more applications not only run on Arm-based platforms, but run with market leading performance and power consumption. Unlocking excellent application performance on Arm is becoming more necessary than ever!
We are supporting developers to get the most from their Arm-based platforms through our commitment to developing performance analysis methodologies. This includes supporting tooling, like Linux perf and Arm Streamline Performance Analyzer, for both Windows and Linux.
In this blog, we are excited to introduce WindowsPerf; an open-source tool for performance analysis we are seeding in partnership with Microsoft and Linaro’s Windows on Arm project.
“The momentum for Windows on Arm continues to grow with the availability of Windows Dev Kit 2023, the launch of Surface Pro 9 5G and the release of Visual Studio 2022 17.4 with a fully supported Arm64 version. The community led WindowsPerf project is an important addition to the growing suite of tools available for developers to deliver the very best experiences for Windows on Arm and we are excited to see how the project develops,” said Marcus Perryman, Principal Engineer, Windows Team, Microsoft. "The Opensource Arm ecosystem continues its adoption of the Windows platform, and after a year of enablement, the focus at Linaro is starting to address the performance of the applications. The WPERF project is another example of collaboration rising to meet the need, in this case, the need for a performance analysis tool to enable developers to extract the most from the platform," said Mike Holmes, Chair of the Linaro Windows Group & Director Performance and Enablement at Linaro.
“The momentum for Windows on Arm continues to grow with the availability of Windows Dev Kit 2023, the launch of Surface Pro 9 5G and the release of Visual Studio 2022 17.4 with a fully supported Arm64 version. The community led WindowsPerf project is an important addition to the growing suite of tools available for developers to deliver the very best experiences for Windows on Arm and we are excited to see how the project develops,” said Marcus Perryman, Principal Engineer, Windows Team, Microsoft.
"The Opensource Arm ecosystem continues its adoption of the Windows platform, and after a year of enablement, the focus at Linaro is starting to address the performance of the applications. The WPERF project is another example of collaboration rising to meet the need, in this case, the need for a performance analysis tool to enable developers to extract the most from the platform," said Mike Holmes, Chair of the Linaro Windows Group & Director Performance and Enablement at Linaro.
WindowsPerf aspires to be similar to Linux perf. The project consists of two parts: a kernel-mode driver and a user-space command-line tool. The command-line tool adopts the same style as Linux perf command line.
Currently, WindowsPerf is in the early stages of development, but already supports the counting model for obtaining aggregate counts of occurrences of special events. Soon, we will support the sampling model for determining the frequencies of event occurrences produced by program locations at the function, basic block, and instruction levels.
WindowsPerf can instrument Arm CPU performance counters. As of now, it can collect:
This command-line tool allows users to take advantage of event grouping, event multiplexing, and timeline mode.
You can find WindowsPerf on Linaro Gitlab: https://gitlab.com/Linaro/WindowsPerf/windowsperf
Or visit our Wiki here: https://linaro.atlassian.net/wiki/spaces/WPERF/overview
You can now count events on your WoA machine. Use wperf list command to display list of pre-defined events available. You can specify up to 127 events, wperf will multiplex them as seen below.
In this example count events using pre-defined metrics.
For detailed usage with examples, please visit our GitLab website.
We are excited to seed the WindowsPerf community, and hope over time we can build the capabilities of the tool to provide developers with everything they need to get great performance. This includes diverse set of tools, languages, and runtimes supported on Windows on Arm.
You can help us improve WindowsPerf by just trying the tool on your WoA machine, raising bugs, suggesting improvements, or contributing directly to the project’s documentation or code. We want to be as transparent as possible, which is why we are working on sharing our Jira projects backlog with everyone.
Visit the GitLab page to get access to the project’s documentation, source code, details on how to build project, contribution process and more.
[CTAToken URL = "https://gitlab.com/Linaro/WindowsPerf/windowsperf"" target="_blank" text="Checkout WindowsPerf GitLab" class ="green"]