Проект Mozilla представил Quantum, комбинированный браузерный движок для Firefox

Материал из Викиновостей, свободного источника новостей

28 октября 2016 года

Разработчики Mozilla представили проект Quantum, в рамках которого для Firefox началась разработка браузерного движка нового поколения, сочетающего проверенные временем наработки движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust. В частности, в рамках проекта в Gecko будут перенесены некоторые компоненты из движка Servo, связанные с распараллеливанием вычислений и выносом различных операций на плечи GPU.

Quantum является оптимальным решением в условиях, когда с одной стороны имеется стабильный, но завязанный на однопоточные схемы обработки контента, движок Gecko, а с другой многопоточный и быстрый, но имеющий проблемы с совместимостью и ограниченный по функциональности, движок Servo. Постепенная интеграция возможностей Servo и компонентов на языке Rust в движок Gecko, которые будут переноситься по мере готовности, позволит существенно поднять производительность и надёжность Firefox. Первые значительные улучшения планируется перенести уже в 2017 году.

Для связывания C++ кода Gecko с кодом Servo на языке Rust будет задействована прослойка rust-bindgen. Из намеченных для интеграции компонентов отмечаются:

  • Quantum CSS - применяемая в Servo система распараллеливания обработки стилей CSS, которая со временем полностью заменит текущий CSS-движок в Gecko;
  • WebRender - система отрисовки, оптимизированная для выноса операций на GPU;
  • Quantum Compositor - вынос кода композитинга и интерфейса для взаимодействия с GPU в отдельный процесс, что позволит защитить браузер от проблем, возникающих из-за графических драйверов;
  • Quantum DOM - распараллеливание операций с DOM (Document Object Model). JavaScript-код для разных вкладок и iframe будет выполняться параллельно в отдельных нитях, что позволит увеличить отзывчивость браузера при использовании большого числа открытых вкладок. Для переключения между нитями будет задействован встроенный планировщик совместной многозадачности, переключающий контекст в "безопасные" моменты, например, при вызове функций и в вершине каждой итерации циклов, что позволит минимизировать использование блокировок. Дополнительно планируется реализовать эвристические методы для остановки выполнения кода во второстепенных фоновых вкладках, а также предоставить интерфейс для блокирования бесконечного зацикливания и снижения приоритета ресурсоёмких скриптов;
  • Quantum Flow - проект по развитию дополнительных оптимизаций, таких как увеличения производительности интерфейса пользователя.

Источники[править]


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

Комментарии[править]

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