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

15752
Anthony D

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

9
Есть два процессора случайно? 14 лет назад 1
Определенно вопрос для SuperUser. Noldorin 14 лет назад 0

7 ответов на вопрос

14
Joel Coehoorn

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

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

«одно ядро ​​двухъядерной системы» - ... или даже один процессор с «гиперпоточностью». 14 лет назад 4
@ChrisW: исправлено. Joel Coehoorn 14 лет назад 0
Процент использования ЦП часто сообщается из 100% для каждого ЦП в отдельности, поэтому общая мощность ЦП, используемая в двухъядерной системе, составляет 200%, в четырехъядерном 400% и т. Д. David Z 14 лет назад 0
Не в диспетчере задач Windows они не. Joel Coehoorn 14 лет назад 0
11
Eric Petroelje

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

3
Brian Agnew

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

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

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

2
tim

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

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

1
Havenard

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

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

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

0
Mike Two

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

0
nos

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

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

Похожие вопросы