⚙️ О неточностях измерения нагрузки на ЦП в диспетчере задач
Если в диспетчере задач вы видите, что процесс потребляет 40% CPU, это вовсе необязательно так. Aaron Margosis хорошо и наглядно
объясняет нюансы измерения.
ℹ️ Ранее в диспетчере задач использовался счетчик
% Processor Time
, и на него до сих опирается Process Explorer от Sysinternals. Начиная с Windows 8 на вкладках
Процессы и
Производительность за основу берется счетчик
% Processor Utility
.
Изменения внесли в связи с тем, что современные процессоры могут работать на сниженной частоте при малой нагрузке, а при большой превышать заявленную частоту. В итоге диспетчер задач под нагрузкой нередко показывает значение больше реального. А было время,
когда показывал и больше 100% 👌
На картинке с помощью специальной утилиты нагрузили 6 ядер из 12. Process Explorer показывает 50.48%, а диспетчер задач 83%. Однако заметьте, что базовая частота процессора 2.40Ghz, а во время измерения она составляет 3.94GHz.
83%*(2.40/3.94)=50.56%
, что почти совпадает с procexp. A
83%
- это значение на временной шкале
164.1
, т.е.
100%*(3.94/2.40)
. Логика понятна, но это совсем неочевидно.
В статье есть и другой пример, где диспетчер задач путается в показаниях на разных вкладках. Потому что на вкладке
Подробности используется счетчик
% Processor Time
.
В итоге автор делает вывод, что
% Processor Utility
- не для конечных пользователей, и в диспетчере задач этот счетчик использоваться не должен 🤔