Я только сталкивался с этим вопросом сегодня, и я надеюсь, что это не слишком поздно, но короткие ответы да (на ваш первый вопрос) я обнаружил, что и Safari, и Firefox используют очень большое количество ЦП во время загрузок (>200%
Использование процессора), кто-нибудь может объяснить, почему это происходит?") и да (к вашему комментарию на вопрос" Означает ли процент выше 100%
что он использует несколько ядер для этого процесса?"«).
Краткое объяснение состоит в том, что ваш Mac содержит многоядерный процессор - я предполагаю минимум 2
учитывая, что вы используете OS X 10.8 - который поддерживает гиперпоточность, и это означает, что каждое физическое ядро (сам по себе физический процессор) представляет несколько "логических" ядер для OS X, которые он рассматривает как независимые логические процессоры. Процесс может использовать до 100% каждого логического ядра, поэтому n
логических ядер означает максимальное использование процессора n x 100%
на процесс. Следовательно, ваш Activity Monitor (например, диспетчер задач в Windows) отображает полосы использования ЦП для каждого из этих логических ядер (если они <= 4
, согласно технической документации Apple по использованию ЦП), и вы получаете показания, равные 157%
для Firefox и т.д. Это не является необычным и, вероятно, нормальным, если у вас одновременно запущено несколько загрузок, приложений, игр и т.д. Но обратите внимание: разные процессы приложения находятся в разных частях пространства виртуальной памяти пользователя, поэтому также можно увидеть несколько процессов приложения, которые одновременно загружаются с процессором >100%
, например Firefox 157%
и iTunes 200%
и т.д.
Невозможно увидеть использование ЦП >100%
для процесса в одноядерной системе ЦП, если только инструмент отчетности, который вы используете, не работает. Firefox, вероятно, порождает поток для каждой загрузки (если у вас есть несколько одновременных загрузок), в дополнение к ряду других потоков для вкладок, рендеринга и т.д., И ваше прочтение 157%
для процесса явно означает, что некоторые из эти потоки запускались как минимум на двух разных логических ядрах одновременно. Чтение 296%
будет означать, что используются как минимум три ядра и т.д. Использование ЦП для процесса в системе с многоядерным процессором / многопоточной ОС представляет собой совокупность загрузок ЦП для всех потоков, работающих в этом процессе.
Примечание: на практическом уровне вы можете обратиться к этому, если ваши проблемы с загрузкой связаны с Firefox или возникают неоднократно.
Вы можете узнать информацию о количестве физических / логических ядер на вашем компьютере с помощью команды sysctl
(в BSD API, если вы заинтересованы) - если вы выполните следующую команду в терминальном приложении:
$ sysctl -e hw | grep "cpu="
вы должны увидеть что-то вроде этого (обратите внимание на комментарии, которые я вставил, а не на вывод)
hw.ncpu=4 # no. of cores available to the kernel
hw.activecpu=4 # no. of logical cores actively being used by the kernel
hw.physicalcpu=2 # no. of physical cores
hw.logicalcpu=4 # no. of logical cores