3

Мой компьютер прослужил 30 минут, но диспетчер задач показывает, что время ЦП для процесса простоя системы составляет 1:30 и более. Каждую секунду он продвигается еще на 3, а иногда и на 4 секунды.

Машина также работает, в это время очень медленно (хотя и не в целом).

Это актуальная Win 7 x64.

Почему процесс простоя системы быстрее, чем в реальном времени?

2 ответа2

6

Диспетчер задач показывает время процессора, а не в реальном времени.

Время ЦП - это время, которое было выделено данному процессу на любом доступном ЦП. Таким образом, если у вас четырехъядерная система, и вы запускаете процессы только на одном ядре, оставшийся процесс будет использовать оставшееся время на остальных трех ядрах.

Таким образом, вы получите использование процессорного времени 1 час 30 минут в течение 30 минут безотказной работы.

4

Можно вычислить использованное процессорное время, предполагая, что планировщик задач равномерно (или, по крайней мере, распределенным образом) распределяет задачи по всем ядрам следующим образом:

CPU Time = Application Time * Number of Cores * Average CPU Utilization

Процесс простоя системы - это просто оболочка для планировщика задач, когда ЦП не выполняет никакой работы, поэтому в случае, если в системе больше ничего не выполняется, это обычно имеет очень высокую загрузку. Предполагая, что у вас 4-ядерная система, и ваш процесс простоя занимает 95% процессорного времени, каждую секунду вы ожидаете, что время CPU простоя увеличится на:

CPU Time = (1 second) * (4 cores) * (0.95) = 3.8 seconds

Обратите внимание, что по мере того, как мы получим более совершенные процессоры и наши операционные системы станут более оптимизированными, это теоретически будет максимум. на 100% (например, на холостом ходу процессор практически не работает по сравнению с его возможностями), и в этом случае вы ожидаете, что время процессора для процесса простоя будет просто увеличиваться в реальном времени, умноженное на количество ядер.


Обратите внимание, что эта формула применима даже для однопоточных приложений, поскольку, если однопоточное приложение постоянно работает на 4-ядерном компьютере, максимальная загрузка процессора составит только 25%; таким образом, время процессора для этого однопоточного приложения должно почти соответствовать в реальном времени:

CPU Time = (1 second) * (4 cores) * (0.25) = 1 second

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .