Google объявил Octane устаревшим и не отражающим реальную производительность браузеров


Компания Google решила отказаться от использования, поддержки и развития пакета Octane, созданного в 2012 году в качестве инструмента для тестирования производительности JavaScript-движков, оперирующего кодом ресурсоёмких web-проектов (Pdf.js, Box2D и т.п.) вместо синтетического стресс-тестирования, свойственного таким тестам как V8 Bеnchmark и SunSpider.

В последние годы технологии разработки сильно изменились, появился стандарт ECMAScript 2015, получили распространение новые web-фреймворки и библиотеки. По мнению Google, пакет Octane исчерпал себя, больше не отражает реальную производительность и не может служить меркой для оценки браузерных движков и выбора направлений оптимизации. Показатели браузеров в Octane достигли примерно одного уровня.

Аргументом против синтетических тестов также выступает то, что производители браузеров не брезгуют внесением специальных оптимизаций, не влияющих на работу в реальных условиях, но позволяющих добиться улучшения показателей при прохождении тестов производительности. Например, производители браузеров пользуются ошибкой в тесте Box2DWeb, которая позволяет улучшить результат проверки в Octane на 15%.

Более того, некоторые специфичные для Octane оптимизации стали приводить к замедлению работы реальных приложений (например, медленнее работают Node.js и Ember). Также можно напомнить, что ранее в Internet Explorer было выявлено игнорирование обработки определенных языковых конструкций только при выполнении тестов (незначительное изменение кода теста приводило к замедлению в несколько десятков раз).

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

Измерение пиковой производительности JavaScript оценивает лишь небольшой слой крупных web-приложений, оставляя неучтённым такие важные факторы как время загрузки страницы, время начала выполнения скриптов, эффективность кэширования, скорость обработки и отрисовки HTML и CSS. Кроме того, результат прохождения тестов, измеряющих пиковую производительность, очень сильно зависит от используемой платформы. По оценке Google наиболее близкие к реальным условиям показатели в настоящее время демонстрирует тест Speedometer, разработанный командой WebKit и учитывающий скорость работы с React, Angular, Ember и другими фреймворками.