Microsoft releases open-source Microsoft-Performance-Tools for Linux-Android for analyzing system performance
Microsoft has released a new collection of open-source tools for analyzing system performance. Building on the tools that the company has already produced for Windows, Microsoft-Performance-Tools for Linux-Android is a set of trace processing tooling that makes it possible to closely monitor app and operating system code.
Microsoft-Performance-Tools for Linux-Android is built on .NET Core as well as the new microsoft-performance-toolkit-sdk, and it can be used across multiple platforms. It also integrates with Windows Performance Analyzer for easy GUI-based trace analysis.
See also:
- Running a pirated copy of Office could earn you a discount on a Microsoft 365 subscription
- Windows 11 is dramatically reducing the performance of NVMe SSDs
- How to check for Windows updates from the context menu in Windows 10 and Windows 11
Microsoft says that it is using the tools internally to analyze and boost the performance of various products including its Edge browser, Windows Subsystem for Android, Windows Subsystem for Linux and Azure Linux VMs.
The company says of Microsoft-Performance-Tools for Linux-Android:
For Linux, we support LTTng, perf, and Perfetto. For Android and Chromium browsers such as Chrome & Edge Chromium, we support Perfetto.
Here is the current tracing supported:
- LTTng (Linux Kernel CPU scheduling, Processes, Threads, Block IO/Disk, Syscalls, File events, etc)
- perf Linux CPU Sampling(cpu-clock)
- Perfetto Android & Chromium (CPU Scheduling, CPU Sampling, CPU Frequency, FTrace, Android Logs, Generic Events / Default Tracks, GPU Counters)
The tooling supports parsing & analyzing the above tracing. Capturing & recording a trace is different for each type of tracing tool and is covered in How to capture a trace or logs.
You can process or dump events at the cmd-line using your own custom program with only a few lines of code. For example, there is a LTTngDriver which uses Microsoft.Performance.Toolkit.Engine to drive programmatic access to the traces in the C# language.
Any program or GUI on any OS can process events with the Microsoft-Performance-Tools SDK & Linux-Android plugins
There's more information about the tools, including source code, available on GitHub.