Tip: Get more accurate CPU usage data using Process Explorer vs. Task Manager

LookinAround

Posts: 6,429   +186
Tip: Use Process Explorer to see more accurate and detailed CPU usage info

Most everyone is familiar with Windows Task Manager. Most have also used it to try and learn more about process CPU usage on their machine. But here's a tip for geeks, purists and those who want more accurate and helpful CPU usage data: Use Process Explorer (PE) instead!

  • Unlike Task Manager, PE also shows you how much CPU time Windows spends servicing Interrupts and DPCs (These represent hardware and driver activity on your machine). Continuous high levels of interrupts and DPCs may flag hardware / driver problems
  • Plus, i just found this interesting read (below) that describes why PE is more accurate then Task Manager and thought I'd pass it along
  • Here's a couple threads which include screen shots and real life examples of how useful PE can be!
    > Services.exe takes up 30% of my CPU
    > Horribly slow boot time on XP Professional -- no viruses, good maintenance

Measuring CPU Consumption

Older versions of Windows were able to track only an approximation of actual CPU usage. At a clock-generated interrupt that on most systems has a period of 15.6 milliseconds (ms), Windows identifies the thread currently executing on each CPU. If the thread is executing in kernel mode, its kernel-mode time is incremented by 15.6 ms; otherwise, its user-mode time is incremented by that amount. The thread might have been executing for only a few CPU cycles when the interrupt fired, but the thread is charged for the entire 15.6-ms interval. Meanwhile, hundreds of other threads might have executed during that interval, but only the thread currently running at the clock tick gets charged. Windows Task Manager uses these approximations to report CPU usage even on newer versions of Windows that have more accurate metrics available. Task Manager further reduces its accuracy by rounding to the nearest integer percentage, so processes with executing threads that consume less than 1 percent of CPU time are indistinguishable from processes that do not execute at all. Finally, Task Manager does not account for CPU time spent servicing interrupts or deferred procedure calls (DPCs), incorrectly including that time with the System Idle Process.

Procexp represents CPU usage more accurately than does Task Manager. First, Procexp shows per-process CPU utilization percentages rounded to a resolution of two decimal places by default instead of to an integer. Second, Procexp tracks the time spent servicing interrupts and DPCs and displays them separately from the Idle process. Finally, Procexp uses additional system metrics so that processes consuming small amounts of CPU can be identified and, when possible, provide a more accurate account of actual CPU consumption. Different metrics are available on Windows XP, Windows Vista, and Windows 7 and their corresponding server versions. Procexp takes advantage of whatever is available to report the most accurate measures possible.
 
Back