Как я могу заставить Firefox использовать всю загрузку процессора?
Некоторые программы, такие как Firefox, используют максимум до 25% всех процессоров (только 1 поток).
Однако некоторые программы, такие как WinRAR, используют до 100% всех процессоров.
Как я могу заставить Firefox использовать все возможности процессора (например, WinRAR)?
У меня Windows 7 и процессор Intel Core-i5 (4 Thread).
5 ответов
Некоторые задачи могут выиграть от параллелизма.
Например, если один человек может построить один дом за 9 месяцев, то (возможно) 9 человек могут построить один дом за один месяц.
Но некоторые задачи не могут выиграть от параллелизма.
Например, женщина может зачать и родить ребенка за 9 месяцев, тогда никогда не получится заставить 9 женщин родить одного ребенка за один месяц.
Firefox - это программа ввода-вывода.
Вы вводите URL или нажимаете на ссылку.
Firefox отправляет запрос на получение веб-страницы с удаленного сервера, а затем ожидает.
Когда веб-страница доставляется, Firefox обрабатывает этот ввод и отображает его на экране.
Firefox ждет вашего следующего действия ввода.
Firefox - это программа, которая не получит (значительно) выгоды от параллелизма.
Таким образом, Firefox (по-видимому) реализован как однопоточная программа с использованием только одного ядра.
В то время как другие программы, требующие большого объема вычислений и реализованные как многопоточные, такие как WinRAR, выигрывают от параллелизма и выполняются на нескольких процессорах / ядрах.
Вы не можете, только разработчик программы может.
Единственный вариант, который у вас есть, если вы хотите, чтобы загрузка процессора составляла 100%, это открыть 4 копии программы, каждая копия будет занимать ядро.
Потоки в Windows работают до тех пор, пока не закончатся их кванты (временной интервал), они блокируются (например, делают ввод-вывод, который еще не завершен) или прерываются для выполнения чего-то с более высоким приоритетом, который только что стал готовым.
Windows позволяет повысить приоритет потока вплоть до THREAD_PRIORITY_TIME_CRITICAL. Но даже потоки с самым высоким приоритетом иногда прерываются для запуска потоков с более низким приоритетом планировщиком Windows, который использует случайные повышения, чтобы избежать условия тупика, называемого инверсией приоритета.
То, как или когда приложение создает новые потоки, и то, что они делают, - это дизайнерское решение, встроенное во внутреннюю логику программы, а не то, что вы можете контролировать, за исключением, возможно, того, как вы используете приложение, например, открывая больше вкладок или что-то еще.
Суть в том, что если вам интересно, что нужно, чтобы максимально увеличить использование ЦП, ответ заключается в том, чтобы выполнить нагрузку на процессор с таким количеством потоков, как у вас, у процессоров, не блокировать ввод-вывод и выполнять с более высоким приоритетом (например, просто приложение на переднем плане), чем другие задачи.
Нет. Потоки - это решение, принятое разработчиком приложения, и они могут использоваться (или, по крайней мере, приносить пользу) только в определенных случаях. Кроме того, ЦП - это только один компонент, который может занимать время выполнения, и, таким образом, если он ожидает обновления на диске или высокоскоростного ОЗУ, то ЦП все равно будет действовать точно так, как вы описали, несмотря на то, что приложение является многопоточным и многоядерный чип.
Mozilla Firefox основан на программном обеспечении, написанном до того, как стали популярными процессоры с несколькими ядрами. Как таковой он все еще использует один процесс со сложной системой потоков, который нелегко разделить на отдельные программы. Вы можете проголосовать и принять участие в проекте Электролиз:
Целью проекта является запуск веб-контента в отдельном процессе от самого Firefox. Двумя основными преимуществами этой модели являются безопасность и производительность. Безопасность улучшится, потому что процессы контента могут быть изолированы (хотя песочница процессов контента - это отдельный проект от Electrolysis). Производительность улучшится, потому что пользовательский интерфейс браузера не будет зависеть от низкой производительности кода контента (будь то макет или JavaScript). Кроме того, процессы контента могут быть изолированы друг от друга, что обеспечит аналогичные преимущества в плане безопасности и производительности.
Хотя платформа Gecko поддерживает несколько процессов, интерфейс Firefox не предназначен для их использования. Работа над тем, чтобы внешний интерфейс (включая надстройки) поддерживал несколько процессов, был начат в начале 2013 года. Дорожная карта проекта содержит больше деталей.
Microsoft Internet Explorer и Google Chrome уже могут обрабатывать несколько вкладок одновременно, используя весь процессор, вместо того, чтобы возиться с потоками. Часто весь Firefox зависает из-за тривиальных вещей, таких как одна вкладка, отображающая снежинки в JavaScript.