Lately on my new laptop I’ve noticed that after a reboot, or after waking from suspend, I will often have a “Software Reporter Tool” task running on CPU. There is one from MS, presumably part of Windows Defender, and one from Chrome which is part of chrome://settings/cleanup.

Believe it or not this rant is not about “cloud enabled” antivirus protection being enabled by default. Instead this rant is about how fucking pathologically poorly these tools perform.

The Chrome tool was running at “20%” CPU (10% * two processes) for about 15 minutes before I killed it. My fans were spinning on high the whole time. What the fuck is wrong with these developers that they think it’s OK to be on CPU for 15 minutes in a background process?

Presumably it’s using 10% CPU because it’s trying to throttle itself, but let me tell you why that’s retarded:

  1. If a process is a threat to user-interactivity, my OS should throttle it. A program shouldn’t have to be assumed to be well-behaved in a user interactive system. This isn’t the cooperative-multitasking era of computing: if you’re being an asshole my kernel scheduler should boot you off CPU in favor of higher priority user interactive tasks. So therefore any CPU time the program spends throttling itself is wasted time, because the kernel is already burning cycles on its own scheduler.

  2. RUNNING AT HIGH POWER BUDGET ON A LAPTOP FOR FIFTEEN MINUTES IN A BACKGROUND TASK IS NEVER OK. LIKE, EVER. Do you not understand how CPUs work? You’re on CPU, the core has already lit up the execution units and bumped the clock speed. Which means now the fans have to cool the CPU. If you’re going to waste power: you might as well go for broke and just use the whole CPU and be done ASAP and GTFO. Don’t do this “we’ll sip cycles” bullshit.

  3. Do you have any idea how much disk bandwidth modern machines have? This laptop has a shitty SSD and it can read over 2GB/sec from disk. You could read my entire fucking disk three times in that fifteen minutes. So you can’t pretend the process is I/O bound, it’s not, because you could have issued 3x the neccessary I/O in the time elapsed. (I’m being extremely generous here and assuming the “neccessary I/O” is “my entire block device.” - Which is off by about 2-5x.)

  4. You’re fucking Google and Microsoft, you run the largest geo-distributed datacenters in the world. Isn’t the whole premise of these privacy invading virus scanners to get the compute off the power-constrained device and into the coal-fired cloud? Why the fuck are you spending these CPU cycles at all?

STOP. WASTING. WALL. TIME.

  • Write your program to go as fast as fucking possible.
  • Write the kernel scheduler to issue around the resource constraints.
  • Let the compilers and CPUs do their job and optimize your useless waste of compute.
  • Get. The. Fuck. Off. My. CPU. As. Fast. As. Possible.

Sincerely, My ear drums.
(Which are sick of listening to my fans spin-up for no god damn reason.)