Firefox несколько процессов. Новый Firefox стал многопоточным и быстрым

Зачем браузеру нужно несколько процессов? Многопроцессная архитектура повышает безопасность и стабильность: если где-то произойдёт сбой, то он не утянет разом за собой всё остальное.

На самом деле приём со множеством процессов уже давно используют другие браузеры, причём значительно более агрессивно, чем Firefox. К примеру, Chrome и все обозреватели на базе Chromium (современная Opera, Яндекс.Браузер и прочие) и вовсе могут показывать в диспетчере задач десятки процессов в памяти, если у вас загружено много вкладок.

В этом есть один серьёзный негативный момент: множество процессов могут сильно нагружать слабенький компьютер, а если вы привыкли работать с большим числом вкладок или у вас установлено много расширений, то «напрячься» может уже и ПК с относительно актуальными характеристиками.

Firefox создаёт меньше процессов, чем Chrome?

Как мы уже сказали, Mozilla подошла к вопросу с несколькими процессами куда более осторожно, чем та же Google.

Изначально разработчики сделали для Firefox лишь один дополнительный процесс, куда выводились плагины (не путать с расширениями), – plugin-container.exe. Таким образом, у Firefox впервые появилось 2 процесса.

Однако время шло и требовало от компании всё же не уступать конкурентам в плане стабильности и безопасности. В итоге в этом году была завершена давно тестировавшаяся полноценная многопроцессная архитектура Firefox.

Преимущество по меньшему потреблению памяти Firefox не теряет, даже если использует свою многопроцессность на максимум (8 CP – 8 процессов для обработки контента)

Часть пользователей стабильных версий Firefox впервые смогли оценить многопроцессность уже этим летом начиная с Firefox 54. Окончательным же этапом здесь стал осенний выход Firefox 57, который больше не поддерживал . Часть из этих расширений прежде могла блокировать многопроцессный режим, заставляя Firefox использовать лишь один процесс.

Впрочем, с процессами у Firefox дела обстоят все равно не так, как у Chrome. Если детище Google запускает в отдельных процессах буквально всё и вся (каждую вкладку, каждое расширение), то Firefox разбивает различные элементы на группы. В итоге процессов получается совсем не так много, как у главного конкурента.

Отсюда заметно меньшее потребление памяти и в некоторых случаях меньшая нагрузка на CPU. Ведь огромное число процессов в Chromium-браузерах может грузить даже не самый слабый процессор. А вот Mozilla в итоге пришла к компромиссному и, на наш взгляд, наиболее разумному решению.

Вдобавок Firefox использует иной механизм вкладок по требованию в отличие от того, что применяется в Chrome и браузерах на основе Chromium.

Если эти веб-обозреватели автоматически последовательно загружают в фоне вкладки с предыдущей сессии, то «огненный лис» делает это лишь при явном обращении (клике) по вкладке, тем самым, не создавая лишних процессов, когда в них нет необходимости. Это также способствует меньшему потреблению ресурсов.

Как уменьшить число процессов Firefox?

В отличие Google, Mozilla практически позволяет пользователю самому регулировать, сколько процессов в памяти использовать браузеру.

Видите, как в диспетчере задач висят несколько процессов firefox.exe (или firefox.exe *32 в случае использования 32-разрядных версий) и хотите их убрать/отключить – не проблема. Откройте настройки, прокрутите вниз раздел «основное», дойдя до подраздела «производительность»:

Если вы снимете флажок с параметра «Использовать рекомендуемые настройки производительности», то перед вами появится настройка числа процессов обработки контента.

На выбор предлагаются варианты от 1 до 7 процессов (если памяти у вас более 8 ГБ, то процессов может предлагаться и больше, чем 7):

На этом моменте стоит сделать несколько важных уточнений.

Во-первых, речь идёт о процессах для обработки контента. Если вы укажете здесь, например, всего 1 процесс, то общее число процессов в памяти уменьшится, однако лишь одну копию firefox.exe вы все равно не получите, т. к. помимо контента Firefox выводит в отдельные процессы ещё и обработку интерфейса.

Во-вторых, уменьшение числа процессов имеет смысл на компьютерах с небольшим объёмом «оперативки» и крайне слабым железом. В свою очередь, на более-менее приемлемом железе многопроцессность не ухудшит производительность, а, наоборот, будет способствовать ей, пусть и ценой увеличенного потребления памяти.

Есть ли выгода от уменьшения числа процессов?

Если говорить о нашем собственном примере, то для ПК с 8 ГБ ОЗУ изначально было предложено 4 процесса по обработке контента. При этом в памяти при открытии большого числа вкладок могло отображаться до 7 процессов.

Когда мы установили число процессов контента равным 1, перезапустили браузер и заново прокликали по всем вкладкам, чтобы они загрузились, в памяти предсказуемо осталось только 4 процесса.

Из них 3 предназначены для самого браузера и 1 процесс как раз для обработки контента, причём последний легко отличить, т. к. при открытии приличного числа вкладок он начинает забирать себе памяти значительно больше остальных:

В Firefox при этом у нас было открыто 15 различных сайтов. В изначальном режиме (7 процессов) суммарное потребление памяти составило около 1,5 ГБ. Когда же процессов осталось лишь четыре, то в сумме они забирали около 1,4 ГБ (см. скриншоты выше).

Мы повторяли эксперимент несколько раз, каждый из них «выигрыш» оперативной памяти составлял всего 100-150 МБ. При этом стоит учитывать, что производительность браузера от перехода на 1 процесс для контента могла быть снижена. Таким образом, смысл уменьшения числа процессов, как видите, весьма невелик.

Firefox 54 обрабатывает веб-контент не в один поток, а в четыре, что должно сделать его быстрее и предотвратить зависание всех вкладок одновременно. В Firefox 55 пользователь сможет увеличить количество потоков до семи. От политики «одна вкладка = один поток» разработчики отказались ради экономии оперативной памяти.

Многопроцессный Firefox 54

Mozilla выпустила Firefox 54 - первую полностью многопроцессную, а значит более быструю версию своего браузера. До этого весь веб-контент обрабатывался в один поток, теперь обрабатывается в четыре потока. Каждому потоку выделяется своя оперативная память и свои ресурсы процессора. Благодаря этому Firefox будет работать быстрее, а зависание одной из вкладок перестанет приводить к зависанию всех остальных.

Нововведение является логичным шагом в развитии проекта Electrolysis, или e10s, в рамках которого Mozilla постепенно превращает Firefox в многопроцессный браузер. В августе 2016 г. компания выпустила Firefox 48, в котором выделила в отдельный процесс обработку пользовательского интерфейса, благодаря чему он продолжал работать доже при зависании вкладок. Однако контент все еще обрабатывался в один поток.

Сравнение с Chrome

Поскольку рост количества процессов приводит к большему расходу оперативной памяти, Firefox не будет обрабатывать каждую вкладку как отдельный поток. Количество потоков контента ограничено до четырех, в отличие, например, от Chrome, который открывает новый процесс для каждой вкладки, занимая все больше и больше памяти. В Firefox 54, по мнению разработчиков, был найден оптимальный баланс между скоростью и памятью.

По данным тестов Mozilla, версия Chrome для Windows требует в 1,77 раза больше оперативной памяти, чем 64-битная версия Firefox, и в 2 раза больше, чем 32-битная версия. В macOS Chrome использует в 1,36 раз больше памяти, чем 64-битный Firefox, и в 1,42 больше, чем 32-битный.

Планы на будущее

В версии Firefox 55 количество потоков по умолчанию будет равняться четырем, но пользователь сможет по своему желанию увеличить их число до семи, воспользовавшись строкой dom.ipc.processCount в about:config.

Помимо этого, Mozilla развивает проект Quantum, в рамках которого собирается оптимизировать движок браузера к концу 2017 г. Оптимизация приспособит Firefox к работе с многоядерными процессорами и улучшит работу графических чипов с потоками контента.

Другие изменения в Firefox 54

В Firefox 54 Mozilla продолжила внедрение кросс-браузерных WebExtension API, которые в Firefox 57 станут единственными API, доступными для дополнений. С помощью WebExtension теперь можно создать кастомную панель инструментов DevTools. Кроме того, WebExtension может теперь заменить или кастомизировать страницу новой вкладки.

Помимо этого, изменилось отображение статуса загрузки, которое стало более информативным. Также появилась функция создания и сохранения собственных устройств пользователя в Responsive Design Mode. Кроме того, браузер прекратил поддерживать HTTP/1 Pipelining, в планах разработчиков скорый переход на HTTP/2.

Компании Mozilla Corporation выпала нелегкая судьба постоянно мириться со вторым местом. Ее браузер Mozilla Firefox сначала старался выбороть первенство у навязанного компанией Microsoft Internet Explorer, потом у мегапопулярной в середине 2000-х годов Opera на движке Presto. В конце 2000-х годов у Огненного Лиса появился его нынешний главный конкурентбраузер Google Chrome. А в последнее время еще и нарастает угроза в виде перспективного браузера в составе Windows 10 Microsoft Edge. Но в Mozilla Corporation рук не опускают, свято верят в светлое будущее Firefox и, начиная с версии браузера 48, поставляют его с многопроцессным режимом работы в целях ускорения работы. Для большей части пользователей браузера этот режим поставляется в перспективе быть задействованным, но он не активен по умолчанию.

1. О многопроцессном режиме Mozilla Firefox

Многопроцессный режим, он же Electrolysis, он же e10s – это технология многопоточной обработки данных, благодаря которой сам браузер, открытые в нем вкладки и внедренные в него дополнения могут работать в рамках не одного, а нескольких активных процессов. Пользователи смогут получить небольшой прирост производительности при работе с Интернетом посредством Mozilla Firefox. Правда, отчетливо заметным такой прирост будет только на слабых компьютерных устройствах. Многопроцессный режим призван ускорить запуск сайтов и в целом увеличить отзывчивость работы браузера. Кроме увеличения производительности, за счет внедрения многопроцессного режима усилится стабильность и безопасность браузера.

Многопроцессный режим Mozilla Firefox работает не так, как у Google Chrome. У последнего активные вкладки и расширения выделены во множество отдельных процессов. У Mozilla Firefox же после активации многопроцессного режима в довесок к процессу самого браузера появится лишь один дополнительный процесс, который будет обеспечивать работу открытых вкладок и установленных дополнений. В скором будущем Mozilla Corporation планирует увеличить число активных процессов браузера.

Основных недостатков у многопроцессного режима Mozilla Firefox два – увеличенное потребление оперативной памяти и несовместимость с этим режимом некоторых дополнений.

2. Как задействовать многопроцессный режим Mozilla Firefox

Активация многопроцессного режима Mozilla Firefox осуществляется в его скрытых настройках. Прежде чем приступить непосредственно к включению многопроцессного режима, желательно сделать копию специального файла с текущими настройками Firefox, чтобы в дальнейшем можно было вернуть все назад в пару кликов и не заморачиваться с выискиванием настроек или переустановкой браузера. В адресной строке Firefox вводим адрес странички информационной поддержки браузера:

На этой странице в таблице «Сведения о приложении» ищем графу «Папка профиля» и жмем кнопку «Показать папку».

В проводнике откроется папка профиля браузера, в которой необходимо найти файл с названием «prefs» и расширением «.js». Нужно сделать копию этого файла и хранить ее в каком-то надежном месте.

Теперь можем приступать к активации многопроцессного режима. Набираем в адресной строке:

Жмем кнопку с надписью «Я принимаю на себя риск».

browser.tabs.remote.autostart

Это параметр задействования многопроцессного режима. Двойным кликом меняем предустановленное значение этого параметра с «false» на «true».

Затем в поле поиска вписываем:

extensions.e10sBlockedByAddons

Активация этого параметра необходима на тот случай, если дополнения Firefox, не адаптированные под работу с многопроцессным режимом, будут блокировать его. Здесь необходимо двойным кликом значение по умолчанию «true» заменить на «false».

Чтобы наиболее полно ощутить эффект от многопроцессного режима работы Firefox, можно установить задействование браузером нескольких ядер процессора компьютера. В поле поиска параметров вводим:

Двойным кликом открываем окошко редактирования значения. Вместо установленного по умолчанию значения «1» вписываем «2», «4» или «8» в соответствии с выделяемым браузеру количеством ядер процессора.

По завершении редактирования параметров скрытых настроек перезапускаем браузер.

Чтобы отключить многопроцессный режим работы Firefox, необходимо, соответственно, проделать все действия наоборот. Но проще вернуть браузер к дефолтным настройкам, заменив в папке профиля браузера файл prefs.js в текущей редакции на ранее сделанную копию.

Отличного Вам дня!