Многопроцессный режим в ночных сборках 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 в значительной степени стабилизировался.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Многопроцессный режим в ночных сборках Firefox. Тесты производительности Asm.js и движка Servo», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.