Chrome приветствует Speedometer 2.0!
С момента первого выпуска Speedometer 1.0 в 2014 году команды Blink и V8 использовали этот тест как показатель реального использования популярных JavaScript-фреймворков и достигли значительных улучшений скорости. Мы независимо подтвердили, что эти улучшения приводят к реальным преимуществам для пользователей, измеряя время загрузки популярных веб-сайтов, и обнаружили, что улучшения в скорости загрузки также повлияли на увеличение оценки Speedometer.
JavaScript значительно эволюционировал за это время, добавив множество новых языковых функций в стандарты ES2015 и последующие версии. То же самое касается и самих фреймворков, и поэтому Speedometer 1.0 постепенно устарел. Использование Speedometer 1.0 в качестве индикатора оптимизации создает риск упустить более новые шаблоны кода, которые активно используются.
Команды Blink и V8 приветствуют недавний выпуск обновленного теста Speedometer 2.0. Применение оригинальной концепции к списку современных фреймворков, транс-айллеров и функций ES2015 делает этот тест снова приоритетным кандидатом для оптимизаций. Speedometer 2.0 является отличным дополнением нашего набора инструментов тестирования производительности реального мира.
Результаты Chrome на текущий момент
Команды Blink и V8 уже завершили первый этап улучшений, подчеркивая важность этого теста для нас и продолжая наш путь, сосредоточенный на производительности в реальных условиях. Сравнивая Chrome 60 от июля 2017 года с последним Chrome 64, мы достигли улучшения общей оценки (количество запусков в минуту) примерно на 21% на Macbook Pro середины 2016 года (4 ядра, 16 ГБ ОЗУ).
Рассмотрим отдельные пункты теста Speedometer 2.0. Мы удвоили производительность среды выполнения React, улучшив Function.prototype.bind
. Vanilla-ES2015, AngularJS, Preact и VueJS улучшились на 19%–42% благодаря ускорению парсинга JSON и другим исправлениям производительности. Время выполнения приложения jQuery-TodoMVC было сокращено за счет улучшений реализации DOM в Blink, включая более легковесные элементы управления формами и настройки HTML-парсера. Дополнительно, настройка внутреннего кэширования в V8 в сочетании с оптимизирующим компилятором дала улучшения в целом.
Значительное изменение в Speedometer 2.0 касается расчета окончательной оценки. Ранее среднее значение всех оценок предпочитало работать только над самыми медленными пунктами. При рассмотрении абсолютного времени, затрачиваемого на каждый пункт, мы видим, например, что версия EmberJS-Debug занимает примерно в 35 раз больше времени, чем самый быстрый тест. Таким образом, чтобы улучшить общий результат, сосредоточение на EmberJS-Debug имеет наибольший потенциал.
Speedometer 2.0 использует геометрическое среднее для окончательной оценки, что благоприятствует равным вложениям в каждый фреймворк. Рассмотрим наш недавний прогресс в улучшении Preact на 16.5% выше. Было бы несправедливо пренебрегать улучшением на 16.5%, просто потому что его вклад в общее время незначителен.
Мы с нетерпением ждем возможности принести дополнительные улучшения производительности Speedometer 2.0 и тем самым всего веба. Оставайтесь с нами для получения дополнительных новостей об улучшении производительности.