Что означает процент процессора?


11

Я наблюдаю процент загрузки моего процессора процессом. Как процесс использует только 50% процессора? Разве процесс не использует 100%, затем 0%, а затем 100%? Это не как любая другая инструкция, это другая программа.


1
Есть два процессора случайно?

Определенно вопрос для SuperUser.
Нолдорин

Ответы:


16

Это только итоги опросов примерно один раз в секунду. Вы смотрите, сколько из последней секунды он использовал.

Если вы видите, что процессор некоторое время находится на уровне 50%, вероятно, он использует 100% одного процессора в системе с двумя процессорами.


4
«одно ядро ​​двухъядерной системы» - ... или даже один процессор с «гиперпоточностью».

@ChrisW: исправлено.
Джоэл Коухорн

Процент использования ЦП часто сообщается из 100% для каждого ЦП отдельно, поэтому общая мощность ЦП, используемая в двухъядерной системе, составляет 200%, в четырехъядерном 400% и т. Д.
David Z

Не в диспетчере задач Windows они не.
Джоэл Коухорн

11

Технически вы правы. В любой момент времени ЦП либо используется, либо не используется. Но отображать это на графике было бы не очень полезно, поэтому график усредняет загрузку ЦП за некоторый период времени, возможно, каждую секунду.


3

ОС планирует процесс на определенный период времени. Таким образом, если процесс запланирован на (скажем) 1 мс из 10 мс, то он будет использовать 10% ЦП.

Это немного нелогично, поскольку (в однопоточной однопроцессорной системе) процесс либо запущен, либо не запущен. то есть он использует 100% или 0%. Процент, который вы видите, измеряется по временному окну и является мерой ОС, выделяющей временные интервалы вашему процессу для запуска.

Обратите внимание, что ваш процесс не будет способствовать этому, если вы обращаетесь к I / O. Так что, если вы делаете огромный расчет, вы зарегистрируетесь на 100% (при условии, что больше ничего не выполняется). Если вы затем дождетесь доступа к сетевому пакету / диску и т. Д., Ваш ЦП снизится, несмотря на то, что ваш процесс все еще работает.


2

На очень низком уровне вы в основном правы. В любой данный момент процессор либо выполняет инструкцию для данного процесса, либо нет.

Но ваша ОС находится между вашими процессами и процессором, заставляя их делить время. Процент, который вы видите, представляет собой процент недавнего времени обработки, предоставленного ОС этому процессу.


1

Это основано на среднем времени. Несмотря на то, что все потоки могут иметь одинаковую частоту процессорного времени (в зависимости от приоритета), потоки могут просто сказать «спасибо, но я бездействую» и передать свою очередь следующему потоку. Вот почему программы не всегда используют один и тот же% времени, а большинство программ потребляют 0% ЦП, а программы, которые действительно нуждаются в ЦП, могут занимать около 100% времени для себя.

Почему он ограничен 50%? У вас, вероятно, два ядра процессора, и оно использует только одно.

Или, как предполагается, он использует гиперпоточность, но я не знаю, как именно он себя ведет.


0

Ваша программа может выполнять много операций ввода-вывода (чтение или запись на диск или сеть). Это будет держать программу занятой, но не потребует много времени процессора.


0

Использование системы выбирается и усредняется, что является единственно разумным решением.

Например, запись того, сколько времени процесс / поток провел в течение 1 секунды. Если он потратил 1 секунду на ЦП, это 100% ЦП (или 50%, если у вас 2 ЦП и т. Д.), Если он потратил 100 мс, это 10% загрузки ЦП.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.