Original Task Manager creator explains why it lies to you about CPU usage — former Microsoft engineer shows unique solution to a seemingly simple, but actually complicated, task

Dave Plummer explaining how Task Manager measured CPU utilization
(Image credit: Dave's Garage/YouTube)

Former Microsoft engineer Dave Plummer, who has worked on iconic projects like adding ZIP file support to Windows and the Windows NT Start Menu, revealed how the Task Manager actually reads CPU usage. Plummer built the original Task Manager, and made the tool so simple (in programming and engineering terms) to ensure that it does not use up your computer’s resources unnecessarily. However, there have also been some complaints that it sometimes felt that the numbers it showed were a bit off, so he explained why looking up CPU usage is quite complicated, how Task Manager gets the CPU utilization numbers, and why it might show results that are a bit different from what you see and feel on your PC.

“But measuring CPU usage sounds like it ought to be one of the easiest jobs in computing — I mean, either the CPU is busy, or it’s not, right? It’s silicon, not interpretative dance. Surely, you just ask Windows, ‘Hey, how busy are you?’ and it tells you 73%, and then we all go home early — except none of that is true,” Plummer said. “Because the first uncomfortable question is ‘Busy doing what, exactly?’ Busy on one core or all of them? Busy right now, or averaged the last second or two seconds, or however often your UI happens to wake up? Busy is user mode or kernel mode or interrupt time or deferred procedure calls or the idle loop or some weird accounting bucket that only exists because the scheduler needed somewhere to hand the bill? And once you start asking those questions, what looks like a simple speedometer starts looking more like forensic accounting.”

Dave says that Task Manager is timer-driven in that it refreshes every so often to give you an updated figure. This shows that the machine is showing an interpretation of what happened to your PC between each refresh, not a real-time view of your CPU’s actual usage. The easy answer to this would have been to divide the CPU usage by the time elapsed between refreshes, but Plummer says that this depends on the GUI timer firing precisely. He compared this to “trusting a metronome to stay perfectly steady while it’s riding the back of a pickup truck on a pothole-filled dirt road.”

Article continues below

Instead, he programmed the Task Manager to ask for the total time, i.e., the sum of the kernel time and the user time, of each process since it started. It then subtracts the last total it received during the last refresh from that particular process from that value to get its CPU consumption for that period. This number is then divided by how much total CPU time was accounted for and consumed by all processes in between refreshes. While it may sound complicated versus just dividing the total CPU usage by the time elapsed between refreshes, this solution is far more precise.

However, technological advances made this feel inaccurate. Since the accounting is just an average number, between refresh states, it does not take into account the actual work happening at a particular moment. “Modern CPU usage is more like how full the freeway was, rather than how many miles were actually traveled. A half-full freeway with Ferraris on it can move a lot more traffic than a jammed freeway full of old cement trucks,” Plummer explained. “Now, the old Task Manager was built in an era where the time used was a pretty decent proxy for what work got done. But on today’s processors with dynamic frequency scaling, turbo boost, thermal throttling, deep idle states, that connection has gotten a lot looser. So, when the numbers feel a little slippery, it’s not because the tool is broken so much as the hardware stops being simple enough for a single percentage to tell you the whole story.”

He also added a note on the screen saying, “If I were king… CPU usage should be a measure of the amount of work accomplished versus the theoretical maximum work that COULD have been accomplished.” But because he’s already retired from Microsoft, he probably has no say anymore in how Windows should work.

You can find several more interesting stories and explanations on how one of Windows’ most basic tools works on the Dave’s Garage video embedded above.

Google Preferred Source

Follow Tom's Hardware on Google News, or add us as a preferred source, to get our latest news, analysis, & reviews in your feeds.

Jowi Morales
Contributing Writer

Jowi Morales is a tech enthusiast with years of experience working in the industry. He’s been writing with several tech publications since 2021, where he’s been interested in tech hardware and consumer electronics.

  • DS426
    Good article and I enjoy watching Dave Plummer's videos, but I think something important that should have been mentioned was left out: Task Manager doesn't calculate CPU usage this way as of July 2025's Windows 11 Patch Tuesday updates.

    " Task Manager will now calculate CPU usage differently for Processes, Performance, and Users pages. It will use standard metrics to display CPU workload consistently across all pages and align with industry standards and third-party tools. To ensure backward compatibility, an optional column named CPU Utility is available (hidden by default) on the Details tab, showing the previous CPU value from the Processes page."
    https://support.microsoft.com/en-us/topic/july-8-2025-kb5062553-os-build-26100-4652-0e8c636a-7712-4936-9c76-ece21a38cf9a
    Cheers.
    Reply
  • oofdragon
    Tldr..the guy who did it actually didn't know how to do it, so what you see is just fake
    Reply
  • helper800
    Why not just show the percentage as a function of current CPU power draw divided by CPU TDP? I have always looked at power draw to get an idea of how much my CPU and graphics card was actually doing.
    Reply
  • Bonaducci
    I've made something similar for performance tracking on embedded system (linux of course) and the most challenging part was keeping readings of all thread CPU usage in sync. It's impossible with many threads, as each thread statistics are captured separately and the program doing this is sharing the CPU with the rest of the system. What I did is that each thread reports CPU usage averaged since the last time it was read and even though they are organized in frames, they have some time shifts. This means that when you sum all thread CPU usage, it will be different from total. It's a problem you can't really solve unless you make something specific in the kernel to dump them all at once.
    Reply
  • UPI666
    Why should we care what this fraud, scammer says? He lied to 100.000's of people and tried sell them scam software with his SoftwareOnline company.
    Reply
  • wakuwaku
    DS426 said:
    Good article and I enjoy watching Dave Plummer's videos, but I think something important that should have been mentioned was left out: Task Manager doesn't calculate CPU usage this way as of July 2025's Windows 11 Patch Tuesday updates.

    " Task Manager will now calculate CPU usage differently for Processes, Performance, and Users pages. It will use standard metrics to display CPU workload consistently across all pages and align with industry standards and third-party tools. To ensure backward compatibility, an optional column named CPU Utility is available (hidden by default) on the Details tab, showing the previous CPU value from the Processes page."
    https://support.microsoft.com/en-us/topic/july-8-2025-kb5062553-os-build-26100-4652-0e8c636a-7712-4936-9c76-ece21a38cf9a
    Cheers.
    You should've linked to an article explaining what it all meant. Heck you should've read an explanatory article that explained it. Because if you did, you would know that technically they didn't change the way CPU usage was calculated, they just took into account the number of CPU cores the CPU has and divided the CPU usage of a process against that. This was already used in the Performance section of the Task Manager. They just standardized the rest of the Task Manager that didn't align with the Performance section.

    Here is what came up on my google, but feel free to provide better sources if you find any.

    https://www.pcworld.com/article/2794951/windows-11-now-uses-a-smarter-cpu-usage-number-in-task-manager.html
    https://www.windowslatest.com/2025/03/01/windows-11-standardizes-task-managers-cpu-usage-calculation-aligns-with-industry/
    UPI666 said:
    Why should we care what this fraud, scammer says? He lied to 100.000's of people and tried sell them scam software with his SoftwareOnline company.
    Because Mr Tom is not yet a millionaire and could use all the SEO help he could get from all the millionaires, and billionaires... and trillionaires....
    Reply
  • Chokkymalk
    oofdragon said:
    Tldr..the guy who did it actually didn't know how to do it, so what you see is just fake
    (Because it was the 90s when he was tasked with these projects)
    Reply
  • TerryLaze
    helper800 said:
    Why not just show the percentage as a function of current CPU power draw divided by CPU TDP? I have always looked at power draw to get an idea of how much my CPU and graphics card was actually doing.
    Because you can have badly acting apps/code that soft lock your cpu with minimal power draw, you can have close to zero ability to execute code with very minimal power draw.
    And you can have power virus code that hammers a special function of the CPU maxing out the power draw while still being able to run stuff on the rest of the CPU.
    Also TDP for any CPU is somewhere in the middle of the max power draw, ryzen has a PPT 30-40% ABOVE tdp.

    You would get CPU usage of 140% ,try explaining that to your average customer.
    Reply
  • Co BIY
    TerryLaze said:
    You would get CPU usage of 140% ,try explaining that to your average customer.

    The concept of duty cycle and what it means is foreign to most people as is reading the manual/documentation for anything let alone something as complicated as a PC.

    The stat I would be interested in hearing from Microsoft and the one I'm sure drives their decisions is what percentage of users have ever opened task manager, especially for anything other than canceling a frozen application at the instruction of support.
    Reply
  • vinay2070
    TerryLaze said:
    Because you can have badly acting apps/code that soft lock your cpu with minimal power draw, you can have close to zero ability to execute code with very minimal power draw.
    And you can have power virus code that hammers a special function of the CPU maxing out the power draw while still being able to run stuff on the rest of the CPU.
    Also TDP for any CPU is somewhere in the middle of the max power draw, ryzen has a PPT 30-40% ABOVE tdp.

    You would get CPU usage of 140% ,try explaining that to your average customer.
    Back in the days (over a decade or 2 ago), I remember using a cpu cooler software. When executed, it reduced the temp of the CPU while the CPU usage skyrocketed. I think it ran some instructions that were less stressing than the idle instuctions or something of that sort. Shows why power draw cannot be used for this purpose.
    Reply