Category Archives: Investigative Reporting

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

A Not-Called Function Can Cause a 5X Slowdown

Subtitle: Making Windows Slower Part 3: Process Destruction In the summer of 2017 I wrestled with a Windows performance problem. Process destruction was slow, serialized, and was blocking the system input queue, leading to repeated short mouse-movement hangs when building … Continue reading

Posted in Investigative Reporting, Performance, Programming | Tagged , , | 13 Comments

Making Windows Slower Part 2: Process Creation

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 process creation on Windows … Continue reading

Posted in Code Reliability, Investigative Reporting, Performance, Programming | Tagged , , | 18 Comments

24-core CPU and I can’t type an email (part two)

In my last post I promised to give more details about some rabbit holes that I went down during the investigation, including page tables, locks, WMI, and a vmmap bug. Those details are here, along with updated code samples. But … Continue reading

Posted in Investigative Reporting, memory, Performance | Tagged , , , | 26 Comments

24-core CPU and I can’t type an email (part one)

I wasn’t looking for trouble. I wasn’t trying to compile a huge project in the background (24-core CPU and I can’t move my mouse), I was just engaging in that most mundane of 21st century tasks, writing an email at … Continue reading

Posted in Investigative Reporting, memory, Performance | Tagged , , , | 55 Comments