Спидометр — новый тест Google для JavaScript


Бенчмаркинг — это одновременно и существенный фактор, и искажение. Проблема в том, что как только есть тест, на который кто-то обращает внимание, появляется тенденция настраивать его для получения высокого балла — даже если это приводит к снижению реальной производительности.

Google V8 JavaScript

Движок Google V8 JavaScript часто бывает лучшим, или, скорее, попыткой превзойти. Стандартный способ доказать, что ваш движок JavaScript работает быстро, — это запустить его в сравнении с тестом Octane, произведенным Google.

Как уже упоминалось, проблема заключалась в том, что как только Octane начали серьезно относиться к нему, его начали неправильно использовать для доказательства того, что было необходимо. Ситуация немного похожа на скандал с дизельным двигателем, когда производители двигателей изменили поведение своих двигателей, чтобы снизить выбросы, когда они обнаружили, что тест продолжается. В таком случае. хоть. движки были движками JavaScript, и в большинстве случаев их поведение постоянно изменялось для получения результата за счет реальной производительности.

Octane содержал сокращенный код реального мира, и вы могли предположить, что это сделает его более актуальным, но нет. Как объясняет блог Chromium:

В начале прошлого года команда V8 начала более точно измерять производительность, используя снимки популярных веб-страниц, таких как Reddit, Twitter, Facebook и Wikipedia. Этот анализ показал, что, хотя пиковая производительность приносит пользу определенным типам крупных веб-приложений, просмотр типичных веб-сайтов больше зависит от производительности при запуске или скорости, необходимой для запуска сценария. Используя идеи, почерпнутые из этих реальных данных о производительности, команда V8 реализовала оптимизацию, которая улучшила среднюю загрузку страницы между Chrome 49 и Chrome 56 на 10-20%, в зависимости от архитектуры процессора.

На основе собранных данных команда составила новый тест — спидометр — с добавлением автомобильного эталона. Он включает в себя фрагменты кода из распространенных веб-фреймворков, таких как React, Angular, Ember и jQuery. Важным моментом является то, что, хотя Octane не реагировал на оптимизацию запуска, Speedometer ответил, предполагая, что оптимизация по отношению к Speedometer может привести к увеличению скорости в реальном мире. Как следствие:

Учитывая плато показателей Octane в веб-браузерах и чрезмерную оптимизацию пиковой производительности, мы решили отказаться от теста как универсального показателя реальной производительности JavaScript.

К чему мы пришли?

Во-первых, тестирование производительности непросто и никогда не было легким. Установленный эталонный тест, который отделяется от реальной рабочей нагрузки, искажает проведенную оптимизацию. У команды Google V8, похоже, есть правильная идея:

В дальнейшем мы планируем предоставить больше улучшений производительности JavaScript для новых шаблонов скриптов, появляющихся в Интернете, включая современные библиотеки, фреймворки и языковые функции ES2015 +. Измеряя реальные веб-сайты, а не традиционные тесты, мы можем лучше оптимизировать шаблоны JavaScript, которые наиболее важны для пользователей и разработчиков.

Удивительно, как много можно оптимизировать даже для такого сложного динамического языка, как JavaScript. Возможно, если над этим поработать, такие инновации, как asm.js и веб-сборка, просто не понадобятся!

Вы можете опробовать спидометр на своем оборудовании с помощью любого браузера по адресу: Тест спидометра.


Добавить комментарий