Safari и Firefox, высокая загрузка ЦП во время загрузок

5

Я обнаружил, что и Safari, и Firefox используют очень большое количество ЦП во время загрузок (& gt; использование ЦП 200%), кто-нибудь может объяснить, почему это происходит? Это произошло как до, так и после полной переустановки системы. Он также использует тот же объем процессора, несмотря на скорость загрузки. Я использую Mac OS 10.8.

enter image description here

enter image description here

У меня также были образы Firefox, которые делали то же самое, но случайно удалили их во время переустановки.

andrsnn
источник
Эээ, так он использует 260% процессора при загрузке? Это кажется невозможным. :)
Ƭᴇcʜιᴇ007
отсюда вопрос :) Означает ли это, что процент выше 100% означает, что он использует несколько ядер для этого процесса?
andrsnn
Я не пользователь OSX, так что я не могу сказать наверняка, но в мире Windows нет, процент загрузки процессора составляет максимум 100% (например, 1 занятое ядро ​​в двухядерной системе показало бы 50% использования), и Я ожидал бы того же от любой современной ОС - но опять же, я точно не знаю. Вот почему я это прокомментировал. Это кажется сумасшедшим, но у меня нет ответа. :)
Ƭᴇcʜιᴇ007
2
Понятно, поэтому надо усреднять ядра. Что это. У меня тоже были проблемы с QuickLookSatell. superuser.com/questions/617658/...
andrsnn
Монитор активности (или top или же ps ) не «усредняет ядра», поэтому 200% означает 100% для двух ядер.
Lri

Ответы:

1

Я только сталкивался с этим вопросом сегодня, и я надеюсь, что это не слишком поздно, но короткие ответы да (на ваш первый вопрос) я обнаружил, что и 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% Использование процессора одновременно, например Fire Fox 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
ramius
источник
Надеюсь, что это не противоречит правилам, но для более широкого обсуждения, вдохновленного этим вопросом, пожалуйста, увидеть этот пост ,
ramius