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

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

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

Разработчики Mozilla представили проект Quantum, в рамках которого для Firefox началась разработка браузерного движка нового поколения, сочетающего проверенные временем наработки движка Gecko с новыми возможностями по обеспечению многопоточной обработки данных, предоставляемые языком Rust, сообщает OpenNET. В частности, в рамках проекта в 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 — проект по развитию дополнительных оптимизаций, таких как увеличения производительности интерфейса пользователя.
Нравится
Не нравится
00:52

Комментарии

Нет комментариев. Ваш будет первым!