Performance and Diagnostics

Platform Health & Diagnostics Tools

Deep Dive Analysis: Why did this dll increase in file size by 50%?

We recently noticed that one of the dlls that we produce had suddenly jumped up in file size. The WinUI Controls library, Microsoft.UI.Xaml.Controls.dll that ships as part of Windows App SDK had ballooned in size in our internal builds. It had suddenly grown from 7 MB to 10.5 MB - approximately a 50% increase in size. What had happened to ...

ETW Trace Processing Fails with Error Code 0x80070032

TL;DR New values in an existing ETW event aren’t supported, and a new version of the Windows Performance Toolkit (WPT) or the Microsoft.Windows.EventTracing.Processing.Toolkit NuGet library is needed to process traces with these events. About this failure We began to receive reports of WPA failing to process traces with this error code in...

Filtering events using WPR

More often than not, we collect bigger trace files than we really need. Even though what we are interested in are just a few types of events from an event provider. Or other times, we want to see the call stacks of just a few events but not the rest from the event provider. Turning on the event provider with stacks without any filtering can ...

Recording Hardware Performance (PMU) Events with Complete Examples

Performance Monitor Unit (PMU) events are used to measure CPU performance and understand workloads CPU characterization. Windows provides a way to collect PMU events through Event Tracing for Windows (ETW). When combined with other ETW events, we can tell a lot more concrete story about the performance. I recently added “Recording Hardware ...

New Android logcat support available in Microsoft Performance Tools for Linux & Android

We recently added support for parsing Android logcat logs to the OSS Microsoft-Performance-Tools-Linux-Android project. Logcat is a text-based dump of system & app messages on Android. This is what the logcat log would look like when loaded in Windows Performance Analyzer (WPA) (image) Logcat for performance Logcat is useful in ...

Perfetto tooling for analyzing Android, Linux, and Chromium browser performance – Microsoft-Performance-Tools-Linux-Android

Introduction In the last blog post, we introduced the cross platform open-source .NET Core Microsoft-Performance-Tools-Linux-Android tooling. Recently, we just released version 1.2 adding Perfetto support, which we will cover here. (image) Perfetto is Google’s open-source tracing ecosystem covering Linux kernel tracing (and user-mode...

SizeBench: a new tool for analyzing Windows binary size

A new tool called SizeBench has been released to the Microsoft Store, which helps with understanding binary size on Windows. This static analysis tool can break down a binary in many ways, and has heuristic analyses to look for likely sources of waste, and this blog post goes on a tour of what the tool can do.