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 , , , , | 40 Comments

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

If your Windows computer is running slowly – if a program takes a long time to launch, if a game has a poor frame rate, or if an idle application uses too much CPU time – the best way to … Continue reading

Posted in Performance, Programming, uiforetw, xperf | Tagged , , | 39 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 , | 15 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 , , , , | 49 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