Tag Archives: xperf

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

Xperf Basics: Recording a Trace (the easy way)

Some time ago I wrote a long and detailed post about how to record traces using xperf. The steps needed to record a trace were daunting. However more recent versions of the Windows Performance Toolkit (WPT, the proper name for … Continue reading

Posted in Performance, xperf | Tagged , , , | 46 Comments

Sleep Variation Investigated

I recently saw a blog post covering how Sleep(n) works on various Windows operating systems and it showed slight variations in sleep times, between and within operating systems. The unanswered questions were: Why does the sleep time vary between operating … Continue reading

Posted in Performance, xperf | Tagged , , , , , , | 27 Comments

Summarizing Xperf CPU Usage with Flame Graphs

Xperf is a powerful (and free) Windows profiler that provides amazing insights into what is constraining the performance of Windows programs. Xperf includes a sampling profiler and a very capable viewer of the sampled call stacks (see below for UIforETW … Continue reading

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

Xperf Symbol Loading Pitfalls

Analyzing xperf traces is virtually impossible if you don’t have symbols. Unfortunately the xperf toolkit makes it easy to end up with symbols that takes hours to load, or don’t load at all. Update, July 2020: this blog post is … Continue reading

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

WPA–Xperf Trace Analysis Reimagined

For many years xperfview.exe has been the main tool for analyzing xperf/ETW traces. However starting in fall 2011 the Windows Performance Toolkit started including wpa.exe as an alternative. While the early versions had some significant rough edges, the latest version … Continue reading

Posted in AltDevBlogADay, Performance, Programming, xperf | Tagged , , , | 24 Comments

The Lost Xperf Documentation–CPU Usage (Precise)

As I’ve mentioned previously, the documentation for xperf (Windows Performance Toolkit, also known as ETW) is pretty weak. In this post I’m going to attempt to explain the meaning of the extremely subtle and non-obvious columns in the CPU Usage … Continue reading

Posted in Documentation, Performance, Programming, xperf | Tagged , , , | 32 Comments

The Lost Xperf Documentation–CPU sampling

Xperf (Windows Performance Toolkit, also known as ETW) is a powerful tool for investigating performance issues, however it is a challenging tool to use. Some of this difficulty comes from intrinsic complexity – in order to fully investigate thread scheduling … Continue reading

Posted in Documentation, Performance, Programming, xperf | Tagged , , , | 24 Comments

The New Xperf is Here!

A new version of xperf/WPT (Windows Performance Toolkit) is now available. It’s actually been available for a few months, but I wasn’t paying attention. This version comes in the Windows 8 Software Development Kit. It has some subtle and some … Continue reading

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

Xperf Wait Analysis–Finding Idle Time

The Windows Performance Toolkit, also known as xperf, is a powerful (and free!) system-wide Windows profiler. In the past I’ve talked about using xperf to identify slowdowns in PowerPoint (tutorial version is here) by using xperf’s built-in sampling profiler, but … Continue reading

Posted in AltDevBlogADay, Investigative Reporting, Performance, Programming, xperf | Tagged , , , , , , , | 46 Comments