Category Archives: Programming

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 , , | 19 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 , , | 11 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 , , | 14 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 , , | 23 Comments

Compiler bug? Linker bug? Windows Kernel bug.

See the end of the post for an October 2018 bug fix update, or read the whole story: Flaky failures are the worst. In this particular investigation, which spanned twenty months, we suspected hardware failure, compiler bugs, linker bugs, and … Continue reading

Posted in Debugging, Investigative Reporting, Programming | Tagged , , , | 65 Comments

Zombie Processes are Eating your Memory

Zombies probably won’t consume 32 GB of your memory like they did to me, but zombie processes do exist, and I can help you find them and make sure that developers fix them. Tool source link is at the bottom. … Continue reading

Posted in Debugging, Investigative Reporting, Performance, Programming, Rants | Tagged , , | 70 Comments

Delete an inline function, save 794 kB

In the previous episode of “Simple Changes to Shrink Chrome” I discussed how deleting ‘const’ from a few key locations could lead to dramatic size savings, due to a VC++ compiler quirk. In this episode I’ll show how deleting an … Continue reading

Posted in Performance, Programming, Visual Studio | Tagged , , | 13 Comments