- PVSM.RU - https://www.pvsm.ru -
Примерно четыре месяца назад Mozilla начала первые испытания многопроцессной архитектуры. В версии Firefox 48 её включили по умолчанию [1] у небольшой части пользователей, а потом тестовую выборку увеличили в полтора раза. Как сообщает [2] Mozilla в официальном блоге, в число испытателей попали почти все пользователи Firefox без установленных расширений.
Результаты эксперимента оказались очень неплохие. Отклик браузера уменьшился на 400%, а улучшения в скорости при загрузке страниц составили 700%.
Осталось не так уж много времени до окончания тестирования, когда многопроцессность станет стандартной встроенной функцией Firefox, так что «Огненный лис» догонит (или обгонит) по стабильности, безопасности и скорости работы Chrome, Edge, Safari и Internet Explorer, которые уже давно используют многопроцессную архитектуру.
Многопроцессность означает, что Firefox способен распределять задачи между несколькими процессами. На практике в браузере это означает изоляцию движка рендеринга от пользовательского интерфейса браузера. Таким образом проблема с рендерингом веб-страницы не приводит к зависанию всего браузера, что увеличивает общую стабильность работы. Если для каждой вкладки запущен отдельный изолированный процесс рендеринга, то проблема с зависанием будет ограничена и вовсе одной лишь вкладкой. К тому же изоляция рендеринга в отдельной песочнице повышает безопасность работы: труднее использовать эксплойты для уязвимостей в движке рендеринга.
Chrome и другие используют многопроцессность уже много лет. В Chrome она и вовсе присутствует с самой первой версии, которая вышла в 2008 году. Это был в каком-то смысле технологический прорыв. Интересно отметить, что для создания той самой первой версии Chrome компания Google пригласила в штат нескольких разработчиков Firefox [3], и те не подвели.
А вот у самой Mozilla дело чуть заглохло. Разработка многопроцессной архитектуры под кодовым названием Electrolysis [4] (e10s) началась в 2009 году, но между 2011 и 2013 годами она была остановлена «из-за смены приоритетов».
Сразу после перехода на новую систему расширений [5] в 2015 году работа над многопроцессной архитектурой возобновилась. На новой системе были реализованы программные интерфейсы WebExtensions, во многом совместимые с расширениями Chrome и Opera.
В августе 2016 года Electrolysis наконец-то дорос до тестирования в продакшне. Тогда вышла версия Firefox 48, где многопроцессность активировали для ограниченного числа пользователей с браузерами без расширений.
Чтобы включить многопроцессность, следует зайти в about:config
и установить логический параметр browser.tabs.remote.autostart
в значение true
. Если многопроцессность не включилась, то следует создать новый логический параметр browser.tabs.remote.force-enable
и присвоить ему значение true
. Результат операций будет показан на вкладке about:support
в разделе «Многопроцессные окна».
Начиная с версии Firefox 49 многопроцессность начали тестировать на браузерах с ограниченным набором проверенных дополнений. Результаты обнадёжили, поэтому с выходом Firefox 50 тестовую аудиторию ещё больше расширили, включив в неё браузеры с большим набором дополнений, для которых их авторы сделали специальную пометку о поддержке многопроцессности. Список поддерживаемых расширений обновляется на сайте Are we e10s yet? [6].
С помощью отдельного дополнения Add-on Compatibility Reporter [7] можно проверять, совместимы ли ваши дополнения с режимом многопроцессности Firefox.
Теперь осталось несколько последних шагов. Нужно обеспечить нормальную работу браузера в сборках Firefox с расширениями, которые пока не поддерживают многопроцессность. По плану, в версии Firefox 51 планируют обеспечить работу с расширениями, которые не помечены явно как несовместимые с многопроцессностью.
Дальше Mozilla будет дорабатывать саму архитектуру. Кроме отделения движка рендеринга в отдельный процесс, следует реализовать поддержку нескольких контент-процессов. В этом случае прибавка производительности будет максимально возможной, а риски стабильности браузера от зависаний отдельных вкладок сведутся к минимуму.
Сначала второй контент-процесс реализовали на ветке Nightly. Сейчас разработчики проверяют на нём, сколько отдельных процессов способен выдерживать Electrolysis, и вылавливают баги.
Вторая большая задача — реализовать песочницу безопасности с дочерними процессами, которые ограничены в правах. В версии Firefox 50 песочницу впервые реализовали в релизе под Windows. Это пока первая экспериментальная версия, не защищённая должны образом, предупреждают разработчики. В следующих версиях Firefox песочницу добавят в версии Mac и Linux.
Пусть и с опозданием на несколько лет, но Firefox наконец-то внедряет многопроцессность. И эта отличная новость для всех пользователей этого замечательного браузера. Лучше поздно, чем никогда. Да и лучше сделать всё как надо, а не спешить. Первые тесты показали, что Electrolysis обеспечивает заметную прибавку в производительности, стабильности и безопасности.
Автор: alizar
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/firefox-2/224140
Ссылки в тексте:
[1] её включили по умолчанию: https://geektimes.ru/post/279132/
[2] сообщает: https://blog.mozilla.org/futurereleases/2016/12/21/update-on-multi-process-firefox/
[3] пригласила в штат нескольких разработчиков Firefox: http://blogs.wsj.com/digits/2009/07/09/sun-valley-schmidt-didnt-want-to-build-chrome-initially-he-says/
[4] Electrolysis: https://wiki.mozilla.org/Electrolysis
[5] перехода на новую систему расширений: https://blog.mozilla.org/addons/2015/08/21/the-future-of-developing-firefox-add-ons/
[6] Are we e10s yet?: http://arewee10syet.com/
[7] Add-on Compatibility Reporter: https://addons.mozilla.org/en-US/firefox/addon/add-on-compatibility-reporter/
[8] Источник: https://geektimes.ru/post/283946/
Нажмите здесь для печати.