The Doctor Was the Disease

Posted by Michael S. on May 31, 2026

My MacBook Pro was slow. Not the usual kind of slow where you notice a beach ball and forget about it. The kind where the CPU throttles itself to 20% of max clock speed and the fans sound like a leaf blower.

So I did what anyone would do. I opened an AI coding assistant and asked it to figure out what was wrong.


The parade

Over about six hours, we found one thing after another.

A single Chrome tab had been running since Thursday. 113% CPU. 4.8 GB of RAM. It had accumulated 72 hours of compute time in two days. We killed it. Swap dropped from 4 GB to 1.9 GB instantly. The fans got quieter.

Then the Weather widget. Apple's built-in Weather widget, the one that shows you a little sun icon in Notification Center, was stuck in a refresh loop eating 73% CPU. An entire core. To tell me it was partly cloudy. We killed it, removed the widget, killed it again when it respawned. Third time it stayed dead.

An app I use during the week was sitting in the background. Not logged in. Not doing anything visible. 35% CPU. Just rendering its UI for nobody. Closed it.

An HLS audio stream running in a Chrome tab was pushing coreaudiod to 55% CPU. Chrome's media pipeline decodes audio through the system audio daemon, and a continuous stream means continuous decoding. We talked about switching to mpv, which handles its own audio decoding in about 30 MB of RAM instead of Chrome's 1.6 GB.

Google's Gemini CLI kept spawning fd processes to scan its own session directory. Every few minutes, 130% CPU spike. Brief but frequent, and enough to keep thermals elevated.

Each fix helped. None of them fixed it.


The throttle spiral

The 2019 MacBook Pro has an Intel i9-9880H. It was a hot chip when it was new. Apple caught flak for it. Seven years later, with thermal paste that's almost certainly dried out, the heat management is worse.

macOS handles this with CPU_Speed_Limit, a thermal governor that scales back clock speed when the chip gets too hot. Over the course of the night, I watched it drop: 39, then 25, then 20. At Speed_Limit 20, your 8-core i9 has the effective throughput of a calculator watch.

The problem is that throttling creates a feedback loop. When the CPU runs slower, processes take longer to finish. While they're running longer, they generate heat. The heat causes more throttling. More throttling means processes run even longer. And so on, until the system reaches a steady state where everything is glacially slow but thermally stable.

Breaking out of the spiral requires a period of low load. The chip needs time to cool. But when you have three browser profiles, a trading platform, a streaming audio tab, and multiple AI sessions running, there is no low load. There's just varying degrees of high load.


The punchline

After six hours of diagnosis (finding the Chrome tab, the widget, the trading software, the audio stream, the Gemini polling), the thermal throttle was still stuck at 20. We ran one more analysis.

The top CPU consumers? The AI diagnostic session itself. Two Claude Code sessions and a Gemini session were collectively burning about 150% CPU. Not because they were doing heavy computation. Just existing. Node.js processes managing context, file watchers, shell integration, WebSocket connections. The overhead of having the doctor present was keeping the patient sick.

I closed the diagnostic session. The fans went quiet.


What I actually learned

The instinct when your computer is slow is to investigate, and investigation means running more software. Activity Monitor. Terminal. Diagnostic scripts. AI assistants. Each tool you open to find the problem becomes part of the problem.

The right order is: close things first, investigate second. If closing Chrome fixes it, you don't need to know which tab was the culprit. If killing a widget stops a CPU spike, you don't need to trace the refresh loop. The diagnosis is "too much was running." The fix is "run less."

But we never do it that way, because closing things feels like giving up. We want to understand. We want the root cause. So we open more tools, add more load, and wonder why the fans won't stop.

Seven years of dried thermal paste didn't help either.

Enjoyed this post?

Get notified when I publish something new. No spam, unsubscribe anytime.