Вопрос

Диспетчер задач Windows показывает загрузку процессора в процентах.Какая формула стоит за этим?Это из-за этого:

% загрузки процессора для процесса A = (Сумма всех временных интервалов, заданных для процесса A до настоящего времени)/ Общее время с момента загрузки компьютера

Или это что-то другое?

Это было полезно?

Решение

Я не уверен на 100%, что именно используется, но я думаю, что вы немного ошибаетесь в расчете процессора.

Я полагаю, что они делают что-то подобное.

Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)

Я полагаю, что это связано с "интервалом обновления", установленным в диспетчере задач.

Однако, проведя для вас небольшое исследование, я обнаружил это MSDN статья, в которой показан рекомендуемый корпорацией Майкрософт способ вычисления процессорного времени набора инструкций, также может немного подтолкнуть вас к их вычислению.

Другие советы

Нет, это не "с момента загрузки" - это гораздо более чувствительно ко времени.

Это "доля времени, в течение которого центральный процессор активно запускал поток в этом процессе с момента последнего обновления".(Где частота обновления обычно составляет около секунды.) В диспетчере задач я полагаю, что затем она делится на количество процессоров, так что в итоге получается 100% (т.Е.на двухъядерном компьютере нагрузка на однопоточный процессор будет равна 50%).Другие подобные программы иногда этого не делают, выдавая в общей сложности 100% * ядер.

Возможно, вы также захотите проверить эта статья поскольку способ обработки циклов процессора в отношении планирования был изменен как часть Vista.Я предполагаю, что это также относится к Win7.

Смотрите исходный код диспетчера задач

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top