В Firefox добавлен CSS-движок Stylo, написанный на языке Rust
Наиболее заметным эффектом после включения Stylo отмечается увеличение скорости обработки страниц, так как разные CSS-стили обрабатываются параллельно, не блокируя друг друга. В настоящее время работа сосредоточена на оттачивании кодовой базы и стабилизации Stylo - открытыми остаётся 68 известных проблем, 18 из которых имеют характер блокирующих выпуск. Разработчики намерены оперативно устранить данные проблемы и задействовать Stylo в Firefox 57, запланированном на ноябрь и примечательным модернизацией оформления браузера и полным переходом на WebExtensions.
Тем временем, в ближайшем выпуске Firefox 55, который выйдет 8 августа, будут включены наработки другой инициативы Quantum - Flow, в рамках которой развиваются дополнительные оптимизации для увеличения производительности интерфейса пользователя. Тестирование бета-версии Firefox 55 показало существенное ускорение работы со вкладками и сокращение времени запуска. Тестирование проводилось с профилем, содержащим 1691 (!) вкладку. Если в прошлые выпуски запуск браузера со столь огромным числом вкладок занимал 5-8 минут, то в Firefox 55 ситуация изменилась и на запуск ушло всего 15 cекунд, а потребление памяти снизилось в 4 раза (с 2 до 0.5 Гб, без фактической загрузки содержимого всех страниц).
Из ожидающих внедрения инициатив проекта Quantum также можно отметить Quantum DOM, который обеспечит распараллеливание операций с DOM (Document Object Model). JavaScript-код для разных вкладок и iframe будет выполняться параллельно в отдельных нитях, что позволит увеличить отзывчивость браузера при использовании большого числа открытых вкладок. Для переключения между нитями будет задействован встроенный планировщик совместной многозадачности, переключающий контекст в "безопасные" моменты, например, при вызове функций и в вершине каждой итерации циклов, что позволит минимизировать использование блокировок. Дополнительно планируется реализовать эвристические методы для остановки выполнения кода во второстепенных фоновых вкладках, а также предоставить интерфейс для блокирования бесконечного зацикливания и снижения приоритета ресурсоёмких скриптов.
Текущий браузерный движок Firefox не может в полной мере задействовать потенциал современных многоядерных систем из-за изначального использования однопоточных схем обработки контента. В частности, при обработке одной страницы однопоточным остается связанный с DOM (Document Object Model) внутренний API, функции формирования содержимого окна, парсинга HTML и выполнения JavaScript. Использование Rust позволяет разбить код DOM и рендеринга на более мелкие подзадачи, которые могут выполняться параллельно и более эффективно использовать ресурсы многоядерных CPU. Кроме эффективного распараллеливания операций, используемые в Rust технологии безопасного программирования позволят кардинально поднять уровень безопасности.
Источник: http://www.opennet.ru/opennews/art.shtml?num=46917
|
0 | Tweet | Нравится |
|