Performance and Diagnostics

Platform Health & Diagnostics Tools

Latest posts

Deep Dive Analysis: Why did this dll increase in file size by 50%?
Oct 25, 2023
8
3

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

Keith Mahoney
Keith Mahoney

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 cause this? We needed to investigate the issue and fix it. This post is a deep dive into the analysis that was done to figure out what caused this sudden increase in file size and how it could be fixed. File size of a dll is important not just due to its impact on diskspac...

ETW Trace Processing Fails with Error Code 0x80070032
Feb 22, 2023
3
3

ETW Trace Processing Fails with Error Code 0x80070032

Jayson Maxson
Jayson Maxson

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 late 2022. Debugging revealed the error code was due to previously unseen values in an existing CLR event describing a ReJIT operation. This event is used by WPA, XPerf, and EventTracing libraries to map address references from .NET binaries to source file and line informa...

Filtering events using WPR
Oct 30, 2022
1
3

Filtering events using WPR

Sowoon Pyo
Sowoon Pyo

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 result in a ton of events from the provider plus stack-walk events for every event, bloating the trace. That means a few interesting events are buried under a pile of uninteresting events. Not only does the bloated trace make it hard to find the needle in the haystack, but als...

Recording Hardware Performance (PMU) Events with Complete Examples
Jun 20, 2022
0
1

Recording Hardware Performance (PMU) Events with Complete Examples

Sowoon Pyo
Sowoon Pyo

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 performance (PMU) Events” in docs.microsoft.com site. Using the hardware counter is an advanced subject and I couldn’t add all the specific details. This article is a recap of the documentation with focuses on how to use the perf tools such as WPR and Xperf to use PMU events. I...

Reduce Process Interference with Task Manager Efficiency Mode
Feb 16, 2022
3
0

Reduce Process Interference with Task Manager Efficiency Mode

Claton Hendricks
Claton Hendricks

Task Manager Efficiency mode is a new feature that gives you options to ensure certain running processes won’t stress the CPU out, leading to faster foreground responsiveness and better energy efficiency. It also helps you to identify apps that are already running in Efficiency Mode and are good citizens of the OS.

New Android logcat support available in Microsoft Performance Tools for Linux & Android
Jan 13, 2022
0
0

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

Ivan Berg
Ivan Berg

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) Logcat for performance Logcat is useful in general, but why do we find it useful for performance work? Don’t we already have an official performance tooling available with a full-featured and system-level Perfetto tracing? The answer is yes Perfetto is great for deep level system tracing, but one shortcoming is that Perfetto d...

Perfetto tooling for analyzing Android, Linux, and Chromium browser performance – Microsoft-Performance-Tools-Linux-Android
Dec 8, 2021
3
0

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

Ivan Berg
Ivan Berg

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. Perfetto is Google’s open-source tracing ecosystem covering Linux kernel tracing (and user-mode) and built into Android. Perfetto is best-in-class for Android tracing. The Perfetto ecosystem covers System Profiling, In-App Tracing, Trace Viewer, and Trace Analysis. The Perfetto ecosystem is Google’s equivalent of the Microsoft Event Tracing for Windows (ETW) ecosystem. We wo...

New tools for analyzing Android, Linux, and Chromium browser performance – Microsoft-Performance-Tools for Linux-Android
Dec 7, 2021
0
0

New tools for analyzing Android, Linux, and Chromium browser performance – Microsoft-Performance-Tools for Linux-Android

Ivan Berg
Ivan Berg

Introducing the Microsoft Performance Tools for Linux & Android

Authoring Custom Profile – Part 3
Nov 8, 2021
0
0

Authoring Custom Profile – Part 3

Sowoon Pyo
Sowoon Pyo

This blog post explains EventProvider element in WPR profile and its child elements and attributes. Among many elements of the profile, EventProvider is the most used element and most configurable.