
Сегодня Google подробно рассказал о том, как он провел последние два года, улучшая производительность Chrome для Android, особенно в плане Speedometer.
Для отслеживания производительности браузера Google использует бенчмарк Speedometer, поскольку он «наиболее точно отражает реальный мир». Этот показатель «измеряет, насколько быстро Chrome может выполнять взаимодействие с веб-страницами, включая парсинг/рендеринг HTML или CSS и выполнение JavaScript».
Google утверждает, что с момента выхода Chrome 112 в апреле 2023 года произошел «значительный рост показателей Speedometer 2.1 на Android». (В этом году вышла Версия 3.0). Тогда «загрузка документа Google Docs на Pixel Tablet занимала более чем на 50% больше времени, чем сегодня».
На самом деле, на многих устройствах показатели выросли более чем в два раза, а новейшая мобильная платформа Snapdragon 8 Elite установила новые рекорды производительности Speedometer на мобильных устройствах!

Команда Chrome приписывает улучшения трем областям, начиная с оптимизации сборки, которая обеспечивает более «половины общего улучшения показателей Speedometer». В версии 113 прошлого года Google выпустил «отдельную сборку с более высокой производительностью, ориентированную на премиальные Android-устройства» после многих лет использования одной сборки, которая отдавала приоритет небольшому размеру двоичного файла для бюджетных телефонов. (Сегодня для других устройств по-прежнему существует «сборка с более строгими ограничениями по размеру двоичного файла»).
Новая «премиальная сборка» содержит современные оптимизации, что приводит к увеличению размера двоичных файлов, причем Google отмечает «прямой вклад наших партнеров из ARM». К ним относятся:
- Ориентируясь на ARM64 вместо ARM32, мы можем использовать более эффективные функции набора инструкций ARM и более крупные 64-разрядные операции.
- Поскольку размер двоичного файла менее важен для премиальных устройств с большими дисками и достаточным объемом памяти, мы теперь можем компилировать код C++ с оптимизацией по скорости (-O2 / -O3), а не по размеру (-Oz).
- Кроме того, мы настроили пороги встраивания, используемые компилятором, чтобы разрешить большее встраивание в «горячий» код (внутри и между модулями), одновременно обновляя модель и политику, используемую другим проходом компилятора (MLGO), чтобы уменьшить встраивание в «холодный» код.
- Мы также применяем техники профильной оптимизации (PGO) к сборке для дальнейшего улучшения компоновки кода и уровня оптимизации для «горячего» кода.
- Наконец, мы улучшили упорядочивание кода между функциями, синхронизируя генерацию файла порядка Chrome с новой сборкой ARM64. Мы также теперь включаем Speedometer 3, последнюю версию отраслевого стандарта бенчмарка скорости браузера, в рабочие нагрузки, используемые для генерации файла порядка.

Затем последовали улучшения в движке JavaScript V8 и движке рендеринга Blink:
- Мы теперь используем оптимизированный парсер HTML с быстрой дорожкой для парсинга атрибутов innerHTML.
- V8 запустил свой компилятор Sparkplug, супербыстрый базовый компилятор, который находится непосредственно над его интерпретатором Ignition и очень быстро генерирует неоптимизированный код. Позже V8 также запустил Maglev, новый промежуточный компилятор, который генерирует полуоптимизированный код. Его создание занимает больше времени, чем Sparkplug, но гораздо меньше, чем Turbofan, ультраоптимизирующий компилятор V8. В совокупности эта новая иерархия уровней компиляции позволяет V8 более постепенно повышать уровень, улучшая как производительность, так и энергопотребление.
- Мы настроили наши эвристики, которые определяют, когда происходит сборка мусора, ориентируясь на моменты, когда движок рендеринга неактивен или когда пользователи уходят со страниц.
- Мы внедрили множество других инкрементальных оптимизаций, например, для V8 и наших движков парсинга, стилизации, компоновки и рендеринга текста.

Заключительные улучшения были достигнуты благодаря работе с партнерами Android над «оптимизацией взаимодействия Chrome с операционной системой и ее планированием потоков для максимально эффективного использования кремния на устройствах», особенно Qualcomm:
Благодаря сочетанию оптимизированных политик планирования и улучшенной производительности оборудования, их новейшая мобильная платформа Snapdragon 8 Elite показала улучшение Speedometer 3.0 на 60–80% по сравнению с предшественником, что привело к лучшей в своем классе веб-производительности на мобильных устройствах.