Многопроцессный режим в ночных сборках Firefox. Тесты производительности Asm.js и движка Servo
10 ноября 2014 года
В ночных сборках Firefox включена по умолчанию поддержка многопроцессного режима, обеспечивающего обработку интерфейса и содержимого каждой вкладки в отдельных процессах. Подобный подход позволяет увеличить безопасность, повысить надёжность, оптимизировать высвобождение системе неиспользуемой памяти и заметно ускорить работу браузера на многоядерных системах за счёт организации параллельного выполнения неблокирующих друг друга операций.
Дополнительно можно отметить несколько тестов производительности, демонстрирующих успехи в развитии технологий Mozilla. Представлен первый публичный выпуск тестового пакета Massive, разработчики которого постарались сформировать набор тестов производительности, соответствующих сценариям реального применения технологии Asm.js. В частности, оценивается производительность в браузере преобазованного в JavaScript кода проектов Poppler, SQLite, Lua и Box2D. Результаты тестирования разных версий Firefox показали, что за два года производительность Asm.js возросла в 6 раз.
Кроме того, доступны результаты тестирования производительности экспериментального браузерного движка Servo, развиваемого проектом Mozilla в сотрудничестве с компанией Samsung. Движок написан на языке Rust и отличается поддержкой многопоточного рендеринга web-страниц, а также распараллеливанием операций с DOM (Document Object Model). Текущий браузерный движок Firefox не может в полной мере задействовать потенциал современных многоядерных систем из-за изначального использования однопоточных схем обработки контента. В частности, при обработке одной страницы однопоточным остается связанный с DOM (Document Object Model) внутренний API, функции формирования содержимого окна, парсинга HTML и выполнения JavaScript. Использование Rust позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. Кроме эффективного распараллеливания операций, используемые в Rust технологии безопасного программирования позволяют кардинально поднять уровень безопасности, решив текущие проблемы с безопасностью.
Тестирование производительности Servo подтвердило (Архивная копия от 10 марта 2016 на Wayback Machine) его значительное превосходство над традиционным движком Gecko, даже при привязке Servo к одному CPU. В следующем году Mozilla не исключает возможность перевода на Servo продуктов Firefox для Android и Firefox OS. Планов по переходу обычного Firefox на Servo пока нет, но в 2015 году ожидается альфа-выпуск экспериментального варианта Firefox на движке Servo. При этом интегрировать Servo в сторонние проекты можно уже сейчас, так как API/ABI в значительной степени стабилизировался.
Источники
правитьЛюбой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.