Tag Archives: xperf

ETW Central

Over the last few years I’ve written over forty blog posts that discuss ETW/xperf profiling. I’ve done this because it’s one of the best profilers I’ve ever used, and it’s been woefully undersold and under documented by Microsoft. My goal … Continue reading

Posted in uiforetw, xperf | Tagged , , , , | 84 Comments

Xperf Basics: Recording a Trace (the ultimate easy way)

This post can be found through https://tinyurl.com/etwtracing, and an alternate version of these instructions can be found here. If your Windows computer is running slowly – if a program takes a long time to launch, if a game has a … Continue reading

Posted in Performance, Programming, uiforetw, xperf | Tagged , , | 50 Comments

Profiling the profiler: working around a six minute xperf hang

Anytime my computer is a little bit slow I’m likely to record a trace and take a quick look. If I’m lucky I’ll find an easy workaround, in which case I’ve got a potential blog post and a smoother running … Continue reading

Posted in Investigative Reporting, Performance, Programming, xperf | Tagged , | 15 Comments

ETW Trace Compression (and xperf syntax refresher)

Despite extolling the virtues of wprui for recording ETW traces (here, and here) I’ve actually returned to using xperf.exe in batch files to do most of my trace recording. It gives me more precise control over what is recorded, and … Continue reading

Posted in Performance, Programming, xperf | Tagged , | 17 Comments

Slow Symbol Loading in Microsoft’s Profiler, Take Two

When I run into a problematically slow program I immediately reach for a profiler so that I can understand the problem and either fix it or work around it. This guidance applies even when the slow program is a profiler. … Continue reading

Posted in Investigative Reporting, xperf | Tagged , , , , | 21 Comments

Make VC++ Compiles Fast Through Parallel Compilation

The free lunch is over and our CPUs are not getting any faster so if you want faster builds then you have to do parallel builds. Visual Studio supports parallel compilation but it is poorly understood and often not even … Continue reading

Posted in Performance, Visual Studio, xperf | Tagged , , , , | 55 Comments

Process Tree from an Xperf Trace

I was looking at an xperf (ETW) trace recently and needed to know who had started a particular process. The parent process ID was stored in the trace so I could find its parent, and its parent’s parent, and so … Continue reading

Posted in xperf | Tagged , , , , | 11 Comments

Exporting Arbitrary Data from xperf ETL files

The 8.1 and above versions of xperf/WPA/WPT comes with a tool called wpaexporter. This tool works as promised and lets you export arbitrary summary tables to .csv files, thus allowing for automated analysis of xperf traces.

Posted in Documentation, Performance, xperf | Tagged , , , | 15 Comments

The New WPA Xperf Trace Viewer–New Bugs and Old

Every Windows performance expert should be using xperf traces. My preferred viewer for xperf traces is WPA – Windows Performance Analyzer. However the Windows 8 version of this tool has a few bugs in its display of custom ETW events. … Continue reading

Posted in Bugs, xperf | Tagged , , | 4 Comments

Xperf for Excess CPU Consumption: WPA edition

Last year I wrote an article about how to use xperf to analyze a CPU bound program, using the xperfview UI. Since then the WPA UI has come out and replaced xperfview. This updated version of the article explains how … Continue reading

Posted in xperf | Tagged , , , | 21 Comments