Перейти к содержимому
Новость

Servo 0.5 стал лучше открывать реальные сайты, а ускорение в 10 раз оказалось частным случаем

В Servo 0.5 разработчики заявили ускорение отрисовки текста до десяти раз, но эта цифра относится к довольно узкому сценарию. Для будущего браузерного движка интереснее другое изменение: страницы, которые месяц назад отображались с серьезными ошибками или не открывались вовсе, начали работать заметно ближе к обычному браузеру.

Впечатлительная
Servo 0.5 стал лучше открывать реальные сайты, а ускорение в 10 раз оказалось частным случаем

Автор: Michael Larabel

Версия Servo 0.5 вышла 31 августа и включает изменения, сделанные разработчиками в течение июля. В официальном отчете проекта среди результатов отдельно выделено ускорение текста до десяти раз. Формулировка легко воспринимается как общее десятикратное ускорение движка, хотя речь идет о конкретной ситуации: повторной отрисовке одинакового текста с разными значениями font-size. На скорость загрузки и отображения любой произвольной веб-страницы эту цифру переносить нельзя.
Гораздо нагляднее состояние Servo описывает DuckDuckGo. В версии 0.4.0 фирменная утка на главной странице поисковика отображалась неправильно из-за ошибки предварительной загрузки SVG. В Servo 0.5 этот сбой исправлен. Еще показательнее Gumroad: ранее значительная часть сайта, кроме главной страницы, вообще не отрисовывалась, а теперь страницы каталога и товаров, по оценке самих разработчиков Servo, отображаются почти полностью корректно.
Это не означает, что Servo внезапно догнал Blink, WebKit или Gecko по совместимости. В проекте продолжается реализация SVG DOM, WebVTT и ряда DOM API, а часть возможностей пока включается только в экспериментальном режиме. Даже выделение текста в 0.5 стало видимым, но интерактивная работа с выделением еще не закончена. Для движка, который должен переваривать современный веб, список таких незакрытых участков пока существеннее красивой цифры из одного теста.
При этом работа над производительностью идет не только вокруг текста. Отрисовку 2D Canvas перевели на многопоточную схему. Разработчики сообщают об увеличении частоты кадров до 55% и снижении энергозатрат на один кадр до 42%. Это результаты самого проекта, а не независимого сравнительного тестирования, поэтому воспринимать их как универсальную прибавку для любых приложений пока рано.
У Servo есть причина уделять столько внимания именно таким изменениям. Проект развивается как встраиваемый веб-движок, который можно использовать внутри приложений и на устройствах, а не только как основу демонстрационного Servoshell. В версии 0.5 улучшена документация Rust API, а запуск Servoshell на Android теперь поддерживается начиная с Android 10 вместо Android 13. Появились и готовые сборки для Linux на архитектуре AArch64.
Поэтому самый интересный результат Servo 0.5 находится не в цифре «10x». Движок постепенно переходит от впечатляющих отдельных оптимизаций к более скучной, но куда более нужной работе: открывать обычные современные сайты без развалившейся верстки и пропавших элементов. DuckDuckGo и Gumroad пока скорее контрольные точки этого процесса, чем доказательство полной совместимости, но именно такие исправления определяют, сможет ли Servo когда-нибудь стать реальной альтернативой существующим встраиваемым движкам.

Источник: Phoronix
2 показов