64

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

Глядя на монитор активности, я вижу, что у каждого процесса Python есть свой уникальный pid, и каждый из них, похоже, занимает примерно 17-20% моей вычислительной мощности ... Как это возможно? Мой компьютер волшебным образом увеличил мощность на 200% и нарушил где-то законы термодинамики?

Введите описание изображения здесь

4 ответа4

101

В OS X, как и в других * nixes, загрузка ЦП измеряется для каждого ядра виртуального процессора. Если у вас есть несколько - вы можете объединить 200% и более при полной нагрузке.

Это отличается от Windows и, возможно, некоторых других систем, где загрузка ЦП рассчитывается для всего ЦП (или ЦП - я не помню, как он ведет себя при наличии нескольких физических процессоров).

81

OS X и Linux и, возможно, другие операционные системы UNIX (или, скорее, самые распространенные инструменты в этих системах) отображают использование ЦП иначе, чем Windows. В Windows 100% означает « все используемые ресурсы процессора». В Linux это означает, что один «поток» (как в Hyper-threading) полностью занят. Таким образом, он может достигать (Number of Threads per Core) * (Number of Cores per CPU) * (Number of CPUs) в общей сложности.

Хотя это и не совсем связано, еще один интересный факт: Windows 10 дополнительно нормализует загрузку ЦП, используя текущее состояние регулирования ЦП. Таким образом, процессор с частотой 2 ГГц, работающий на частоте 1 ГГц, будет загружен только на 50%.

12

Как уже указывалось в нескольких ответах, Mac показывает процент загрузки процессора для каждого процесса как «процент от одного ядра», поэтому вы должны разделить его на количество ядер [включая HT как «двойной»]

Если вы не уверены, сколько у вас виртуальных ядер, Cmd ⌘ 3 откроет панель « Журнал активности» в Activity Monitor, где вы можете просто посчитать полосы;)

Непосредственно под тем местом, где вы отрубили изображение, находится информация, необходимая для быстрого определения фактического общего использования для System:, User: & Idle: в этом случае ваша простая сумма составляет 100%.

6

Монитор активности на самом деле не измеряет вычислительную мощность, используемую каждым приложением / процессом, он просто оценивает ее с помощью алгоритма. Так что это может быть неточным ...

Кроме того, как отмечает @Vasfed, потребление ресурсов процессора измеряется на каждое ядро процессора. Использование нескольких ядер может означать более 100% использования ...

Гик иногда натыкается на это явление и ошеломляется, пока суперпользователь не приходит ему на помощь ... ; D

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