Category Archives: xperf

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 , , , | 3 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 , , , , , , | 10 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 , , | 22 Comments

UIforETW – Windows Performance Made Easier

Event Tracing for Windows (ETW) aka xperf is an amazing tool for investigating the performance of Windows machines – I’ve blogged about it many times and it’s helped me find some amazing issues. But recording ETW traces has always been … Continue reading

Posted in xperf | Tagged , , | 24 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 , | 13 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 , | 14 Comments

Hidden Costs of Memory Allocation

It’s important to understand the cost of memory allocations, but this cost can be surprisingly tricky to measure. It seems reasonable to measure this cost by wrapping calls to new[] and delete[] with timers. However, for large buffers these timers … Continue reading

Posted in Investigative Reporting, Performance, xperf | Tagged , | 25 Comments