Category Archives: xperf

24-core CPU and I can’t move my mouse

This story begins, as they so often do, when I noticed that my machine was behaving poorly. My Windows 10 work machine has 24 cores (48 hyper-threads) and they were 50% idle. It has 64 GB of RAM and that … Continue reading

Posted in Investigative Reporting, uiforetw, xperf | Tagged , , | 264 Comments

CPU Performance Counters on Windows

TL;DR – I can finally record CPU performance counters for processes on Windows. I’m mostly a Windows developer but I’ll occasionally fire up my Linux box to use the perf tool to examine CPU performance counters. Sometimes you really need … Continue reading

Posted in xperf | Tagged , , | 10 Comments

ETW Flame Graphs Made Easy

A bit over three years ago I wrote about how to use flame graphs to visualize CPU Usage (Sampled) data from ETW, and a year ago I added flame graph support to UIforETW. However these techniques are clumsy and slow … Continue reading

Posted in Performance, uiforetw, xperf | Tagged , , | 33 Comments

UIforETW is No Longer a CPU Hog

A few months ago I wrote about how many processes on my system were waking up and wasting CPU time for no good reason, thus wasting battery power, electricity, and CPU power. I was surprised that nobody called me out … Continue reading

Posted in Performance, uiforetw, xperf | Tagged , | 6 Comments

Power Wastage On An Idle Laptop

Ever since I upgraded to Windows 10 it’s felt like my battery life is worse. My suspicion was various scanning tasks that were springing to life more frequently, but it was just a hunch. So, I did what I do … Continue reading

Posted in Investigative Reporting, Performance, Programming, uiforetw, xperf | Tagged , | 33 Comments

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 , , , , | 67 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

New Xperf and new WPA in the new WPT

A new version of Windows means a new version of the Windows Performance Toolkit (WPT), the ship vehicle for xperf, WPA and other Event Tracing for Windows (ETW) tools. I’m a huge fan of xperf/ETW (just look at some of … Continue reading

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

Graph All the Things (Using WPT 10)

Event Tracing for Windows (ETW) has always recorded a rich set of data and allowed graphing it all on the same timeline. With the creation of UIforETW (which records more data) and the new* ETW trace viewer (which can graph … Continue reading

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

ETW Heap Tracing–Every Allocation Recorded

Event Tracing for Windows (ETW, aka xperf) is usually used to monitor CPU usage, through its sampling profiler and its ability to record detailed information about context switches. Well, ETW is also used to monitor file I/O, and disk I/O, … Continue reading

Posted in memory, xperf | Tagged , , | 34 Comments