Skip to content
Виктор edited this page Mar 14, 2018 · 1 revision

Go to TOC


The CPU time used by the task is greater than the observer expects.

dmex

Sebastian

processhacker seems to display the processor time which is at least 2 times higher

Task Manager (and PE) calculate the CPU usage based on the number of CPU cycles which is disabled by default in Process Hacker... You can enable Cycle based calculation in Process Hacker via the View menu and selecting Show CPU Below 0.01.

This is disabled by default since most CPU frequency throttling implementations (e.g. SpeedStep, AMDs Cool'n'Quiet, Dynamic voltage scaling) can sometimes cause the number of cycles to be calculated as a higher percentage of available cycles per second and thus greatly(!) skew the displayed utilization - this has been a major issue for Task Manager and Process Explorer on some machines.

Comment:

The meaning of the situation is simple - TaskManager and PE incorrectly consider the time!

They consider the time that the task uses the processor by the formula "time equals number of CPU cycles used multiplied by its duration "based on assumptions of the constancy of the duration of the CPU clock cycle.

Modern CPUs are very hot and therefore use the operating mode with a variable clock speed to reduce crystal heating. This made it possible to reduce the heat dissipation of the CPU was several times higher, but gave rise to a problem of measuring accuracy CPU usage time because the formula "time is equal to the number of used the task of CPU cycles multiplied by its duration "in this case is not applicable.

The PH uses the CPU time-out measurement in the execution state tasks using the system timer. This method provides the minimum measurement error and does not depend on the current operating mode of the CPU.


Go to TOC

Clone this wiki locally