Author Archives: brucedawson

About brucedawson

I'm a programmer, working for Google, focusing on optimization and reliability. Nothing's more fun than making code run 10x faster. Unless it's eliminating large numbers of bugs. I also unicycle. And play (ice) hockey. And sled hockey. And juggle. And worry about whether this blog should have been called randomutf-8.

Commute Challenge 2018

Do you live in Kirkland and own something that could help with this month’s commute challenge? If so then email me at commutechallengekirkland@gmail.com. Details below. Last April I gave myself the challenge of commuting to work using a different method … Continue reading

Posted in Commuting, Environment, Unicycling | 5 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 , , , | 25 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 , , , | 46 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 , , | 12 Comments

Compiler bug? Linker bug? Windows Kernel bug.

Flaky failures are the worst. In this particular investigation, which spanned twenty months, we suspected hardware failure, compiler bugs, linker bugs, and other possibilities. Jumping too quickly to blaming hardware or build tools is a classic mistake, but in this … Continue reading

Posted in Debugging, Investigative Reporting, Programming | Tagged , , , | 64 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 , , | 65 Comments

What We Talk About When We Talk About Performance

Describing performance improvements exists at the intersection of mathematics and linguistics. It is quite common to use incorrect math to describe performance improvements, and it is possible to use incorrect, misleading, or just sub-optimal rhetoric to describe your math. Consider … Continue reading

Posted in Math, Performance, Rants | Tagged , , | 22 Comments