Category Archives: xperf

Taskbar Latency and Kernel Calls

I work quickly on my computer and I get frustrated when I am forced to wait on an operation that should be fast. A persistent nuisance on my over-powered home laptop is that closing windows on the taskbar is slow. … Continue reading

Posted in Investigative Reporting, Performance, uiforetw, xperf | Tagged , , , | 32 Comments

O(n^2) in CreateProcess

So many possible introductions to this one: Windows 7: Sheesh, I sure am slow at creating processes Windows 10: Hold my beer… Or how about: A) How long does CreateProcess take on Windows? B) How long would you like it … Continue reading

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

When Your Profiler Lies

Last week I wrote about the performance consequences of inadvertently loading gdi32.dll into processes that are created and destroyed at very high rates. This week I want to share some techniques for digging deeper into this behavior, and the odd … Continue reading

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

Making Windows Slower Part 1: File Access

Windows has long had a reputation for slow file operations and slow process creation. Have you ever wanted to make these operations even slower? This weeks’ blog post covers a technique you can use to make all file operations on … Continue reading

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

What is Windows *doing* while hogging that lock

Earlier this month I wrote about how Windows 10 holds a lock during too much of process destruction, which both serializes this task and causes mouse-cursor hitches and UI hangs (because the same lock is used for these UI tasks). … Continue reading

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

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