3 процесса firefox. Процессы Firefox: почему их много и как сделать меньше

15.05.2019 Интернет

Начиная с релизной версии Firefox 48, ускорить его можно изменив ряд параметров. Хотя данный функционал и был доступен ранее в бета-версиях, но официально Mozilla с 48 версии включила для 1% пользователей этот режим по умолчанию. Так что чем мы хуже? Основное изменение связано с использованием Многопроцессорного режима.
Большинству пользователей на обывательском уровне наверно понятно, что это несет более быстрое отображение сайтов и лучший отклик. Но помимо ускорения, это добавляет надежность, так как теперь одна зависшая вкладка не повлияет на работу остальных и всего браузера. Да и при открытии нескольких вкладок не будет уже таких блокирующих операций, как при работе в однопроцессорном режиме. А так же улучшение безопасности, теперь бяка-коду из-за изоляции будет сложнее получить ресурсы к компонентам браузера, но это в теории.
Чтобы убедиться что этот режим у вас включен, нужно зайти в пункт меню Справка - Информация для решения проблем - находим строку Многопроцессные окна.

Если стоит значение 0/1, то в адресной строке набираем


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

Как ускорить Firefox

  • browser.tabs.remote.autostart – true
    многопроцессорный режим. Вся его прелесть раскрывается при очень динамичном серфинге. Но правда памяти кушает не много больше, чем в однопоточном режиме.
  • dom.ipc.processCount - 4
    сколько процессов будет использоваться. Можно ставить равным количеству ядер процессора
  • browser.tabs.remote.force-enable – true
    включение мультипроцессорного режима, даже если у вас установлены дополнения не совместимые с ним.
  • extensions.e10sBlockedByAddons – false
    расширения не блокируют работу многопроцессорности
  • extensions.e10sBlocksEnabling – false
    разрешить блокировку многопроцессорности
  • layers.async-pan-zoom.enabled – true
    асинхронный скроллинг при загрузке нескольких страниц
  • dom.ipc.plugins.asyncInit – true
    Асинхронная инициализация плагинов. Каждая страница, использующая эти плагины, инициализирует их при открытии, и этот процесс состоит из нескольких этапов во время которых чаще всего браузер и подвисает на некоторое время. Это параметр позволяет от этого избавиться.
  • javascript.options.asyncstack – true
    асинхронный вызов стеков
  • network.http.pipelining.aggressive – true
    В случае проблем с соединением (например сервер прерывает его) используются резервные механизмы для его поддержания
  • network.http.pipelining.max-optimistic-requests – 8
    Максимальное количество запросов в соединении, которое делает FireFox. Больше 8 заметного ускорения загрузки старницы не дает, но зато увеличивает нагрузку на сервер. В интернете очень много статей, где этот параметр явно больше. Не уверен, что это хорошо, ведь сервер должен вернуть ответ в строгой последовательности, а если была например временная проблема, то отображение сайта резко затормозится. Или вообще при большом значении, сервер может посчитать, что его просто ддосят с одного ip и заблокирует вас. Так что об ускорении уже речи идти не может.
  • browser.panorama.animate_zoom – false
    Параметр, отвечающий за анимацию "увеличения" вкладки при выборе её из панорамы (группы вкладок)
  • network.http.pipelining.maxsize – 524288
    вероятно это максимальный размер буфера конвейера
  • network.http.pipelining.ssl – true
    включает или выключает конвейерные запросы через SSL соединение (https)
  • network.http.proxy.pipelining – true
    Использовать несколько запросов в одном соединении с сервером, при использовании прокси.
    о конвейеризации
  • browser.cache.use_new_backend - 1
    включение новой системы HTTP кэширования. Позволяет исправить некоторые моменты с отзывчивостью интерфейса
  • memory.free_dirty_pages – true
    высвобождать не используемые страницы памяти. Освобождает память после закрытия вкладок. Положительно скажется на скорости работы Firefox
  • image.cache.timeweight – 100
    Задается вес, по которому определяется как удалять декодированное изображение из кэша. Значение ближе к нулю, акцент при удалении смещается на размер. Ближе к 1000, срок жизни изображения смещается на срок нахождения в кэше.

Если раньше вам казалось, что Лиса тормозила, то вам не казалось. FireFox быстрыми темпами развивается, что то добавляется, что то убирают. За несколько десятков релизов в Mozilla было добавлено столько всего не очень нужного и разношерстного, что вы очень удивитесь, как много всего он может без вашего ведома отсылать\собирать\отправлять куда-то и для какого-то анализа. Думаю в раскрою тему безопасности, так как это хоть и косвенно, но так же влияет на скорость работы самого браузера.
Ну и надеюсь после прочтения этой статьи и применении этих советов, хоть не много, но ускорение у вашего FireFox будет заметно.

Интересное видео, которое реально помогает ускорить загрузку страниц и снизить потребление трафика. Но! После её применения, на сайтах может перестать отображаться часть контента. Как пример, включите ее и обновите эту страницу. У вас может пропасть видео в конце этой статьи.

Так уж сложилось, что Firefox использует однопроцессорную модель, и реальность такова, что такой подход с учётом динамики развития сети и частичной связки с XUL вызывает, мягко говоря, много неудобств. Один процесс должен обрабатывать несколько потоков, что очень сильно сказывается на производительности браузера в целом. Отзывчивость Firefox оставляла желать лучшего, когда тот же Google Chrome прекрасно рендерил тяжёлые страницы, что никак не сказывалось на производительности других вкладок.

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

«Мозилла» начала проект Electrolysis для адаптации движка «Гекко» к использованию нескольких процессов. Что вынуждает «Мозиллу» переключаться на подобную модель построения своего браузера? В первую очередь, это производительность и отзывчивость. Основной целью является уменьшение подвисания (jank), проявляющегося при стандартных операциях - загрузке особенно крупной страницы, наборе текста в веб-форме или прокрутке перегруженной элементами страницы.

Предлагаю воспользоваться новыми функциями многопроцессорной модели (к сожалению, по умолчанию они отключены, так как еще в разработке). Все функции проверены самим автором, и их значения подобраны для максимально быстрой и стабильной работы. Основной упор сделан на производительность и отзывчивость Firefox в условиях агрессивного серфинга. Потребление памяти в сравнении с однопроцессорным режимом должно вырасти где-то на 12%-17% с учетом форсированного использования аппаратного ускорения, а без него не более, чем на 10%.

Так как проект только развивается и не является полностью стабильным, редактируйте в новом профиле а потом сравните результат. Ссылаться на свои результаты считаю неуместным, из-за сырости проекта. Результаты просто-напросто могут разниться кардинально.

Оптимизация

Применимо на всех версиях выше 44beta

Правим about:config:

Browser.tabs.remote.autostart - true (включить многопроцессорность для вкладок) layers.async-pan-zoom.enabled - true dom.ipc.plugins.asyncInit - true (асинхронность плагинов) javascript.options.asyncstack;true layers.acceleration.force-enabled = true (отключить при проблемах с видео) network.http.max-connections = 512 network.http.pipelining = true network.http.pipelining.aggressive = true network.http.pipelining.max-optimistic-requests = 32 network.http.pipelining.maxrequests = 96 network.http.pipelining.maxsize = 600000 network.http.pipelining.ssl = true network.http.proxy.pipelining = true browser.cache.use_new_backend - 1 (новая система кеширования) memory.free_dirty_pages - true browser.tabs.animate = false image.cache.timeweight = 100 browser.display.show_image_placeholders - false nglayout.initialpaint.delay;0 (создать целое) browser.display.auto_quality_min_font_size - (-1)

Browser.display.focus_ring_on_anything (Логическое) = false browser.display.focus_ring_width (Целое) = 0

Защита

Network.dns.disableIPv6 - false network.dns.disablePrefetch - true network.predictor.enabled - false network.predictor.cleaned-up - true network.prefetch-next - false browser.send_pings - false network.http.speculative-parallel-limit - 0 (ноль) privacy.trackingprotection.enabled;true (защита от жучков) browser.safebrowsing.enabled;false browser.safebrowsing.malware.enabled;false datareporting.healthreport.service.enabled;false browser.safebrowsing.downloads.remote.enabled;false extensions.blocklist.enabled - false extensions.getAddons.cache.enabled - false browser.chrome.toolbar_tips - false media.video_stats.enabled - false dom.battery.enabled - false media.peerconnection.enabled=false

Устройства

Dom.gamepad.enabled;false dom.vr.oculus.enabled;false dom.vibrator.enabled

Отключить Hello

Browser.newtabpage.directory.ping - оставить пустую строку browser.newtabpage.directory.source - оставить пустую строку browser.aboutHomeSnippets.updateUrl - оставить пустую строку

Теперь качество работы повыситься в разы. Удачи.

Команда разработчиков Firefox выпустила новую версию браузера с номером 54. Главной особенностью обновленного Firefox является поддержка многопроцессного режима обработки веб-страниц, работа над которым велась восемь лет под кодовым названием Electrolysis (E10S). Представители Mozilla называют новую версию браузера «лучшим Firefox».

Первая версия мультипроцессного Firefox была представлена в августе прошлого года (версия 48). В ней работа с UI была вынесена в отдельный процесс, что делало интерфейс отзывчивым даже при высоких нагрузках на систему. В версии Firefox 54 разработчики пошли еще дальше, организовав работу в нескольких параллельных процессах: каждый со своими ресурсами RAM и CPU, управляемыми операционной системой.

Недостатком при таком подходе обычно остается высокое потребление памяти. Например, Google Chrome по умолчанию создает новый процесс для каждой вкладки и потребляет множество ресурсов. Однако, по словам главы маркетинга Firefox Райана Поллока (Ryan Pollock), в отличие от того же Chrome, Firefox не будет забирать себе всю оперативную память и замедлять работу компьютера пользователя.

В Mozilla отмечают, чтобы избежать излишнего потребления памяти, по умолчанию запускаются только четыре контент-процесса. Вероятно, число четыре - это золотая середина между потреблением памяти и преимуществами многопроцессорных систем. Однако количество процессов можно настроить, перейдя на вкладку about:config и изменив значение dom.ipc.processCount.

Сравнение потребления памяти браузеров ()

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

В дополнение к многопроцессорной работе, Firefox 54 также получил несколько новых WebExtension API, для разработки дополнений, совместимых с другими браузерами. В релизе значатся API для создания боковых панелей, позволяющие размещать локальные HTML-файлы внутри панели. Также была добавлена возможность подключения собственного обработчика протоколов и возможность настройки about:newtab. Помимо этого, был внедрен Privacy API для управления настройками безопасности и приватности (networkPredictionEnabled, webRTCIPHandlingPolicy и hyperlinkAuditingEnabled).

В новом браузере была активирована sandbox-изоляция , ограничивающая доступ подпроцессов Firefox к файловой системе и другим процессам. В Linux изоляция системных вызовов реализована с применением Seccomp-bpf, а также User namespace и chroot. В Windows же применяются библиотеки sandboxbroker и sandboxtarget, разработанные и используемые компанией Google. Еще среди изменений, внедренных в Firefox 54, числится возможность создания и сохранения собственных устройств в Responsive Design Mode для тестирования сайтов (можно задать разрешение экрана, пропускную способность сети и др.).

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

И наконец, с выходом Firefox 54, Mozilla завершает процессы по закрытию канала с Aurora-версиями браузера. Теперь организация намерена использовать принцип поэтапной доставки обновлений для Release-канала, где новые функции, такие как Electrolysis, постепенно добавляются в браузеры небольшого числа пользователей. Если нововведение вызывает всплески отказов, или телеметрические данные указывают на возникающие сложности, Mozilla останавливает развертку обновления и дорабатывает решение.

Таким образом, процесс доставки продукта будет состоять из трех этапов: Nightly, Beta, Stable. Отказываясь от канала Aurora, разработчики надеются ускорить процесс выхода стабильных версий браузера на несколько месяцев.

Полный список изменений нового релиза вы можете найти на сайте разработчиков по ссылке .

P.S. О чем еще мы пишем в нашем блоге:

  • IaaS в мире музыки: как облако становится стандартом размещения аудиоконтента
  • Почему результат тестирования скорости диска в ноутбуке может быть лучше, чем у промышленного сервера в облаке?