Компания Google объявила о выпуске Octane 2.0, инструментария для тестирования производительности JavaScript-движков, продолжающего развитие пакета V8 Benchmark. Код всех компонентов Octane распространяется под лицензией BSD. Пройти тестирование можно на данной странице. Тестовый набор адаптирован для выполнения как в браузерах настольных систем, так и в браузерах смартфонов и планшетов.
В отличие от большинство существующих тестовых пакетов, которые оперируют синтетическими проверками, выполняющими стресс-тестирование тех или иных возможностей JavaScript-движков, Octane рассчитан на оценку производительности при выполнении реалистичных сценариев, встречающихся в существующих web-проектах и JavaScript-библиотеках, с которыми пользователи сталкиваются каждый день.
Новый выпуск примечателен добавлением средств не оценки отзывчивости, в дополнение к измерению общего времени выполнения тестового задания. В JavaScript-движках возникновение задержек является не менее важным фактором, чем общая производительность. Проблемы с отзывчивостью, как правило, возникают в современных JavaScript-движках как следствие JIT-компиляции JavaScript в машинные инструкции и работы сборщика мусора, освобождающего неиспользуемые области памяти. Обе вышеотмеченные задачи требуют значительных вычислительных ресурсов и могут выполняться настолько долго, что это становится заметно пользователю в форме подвисаний и скачков в процессе работы с web-приложениями. Для измерения отзывчивости в состав Octane 2.0 добавлены два новых теста: Mandreel и Splay, оценивающих возникновение пауз при выполнении.
В новом выпуске также добавлены дополнительные тесты для оценки работы новых типов высокопроизводительных web-приложений, использующих такие технологии как asm.js и Typescript. В частности, в состав включен тест на основе JavaScript-компилятора Typescript и тест на основе библиотеки zlib, преобразованной в JavaScript при помощи Emscripten.
Кроме базовых тестов V8 Benchmark и вышеотмеченных новых проверок, в состав Octane входят следующие тесты:
- Box2DWeb - тест на основе порта одноимённого популярного физического 2D-движка, используемого во многих web-играх и симуляторах;
- Mandreel - тест на основе порта 3D-движка Bullet, изначально написанного на C++, но преобразованного в JavaScript c использованием компилятора Mandreel, который часто используется производителями web-игр;
- Pdf.js - тест скорости декодирования PDF на основе кода развиваемого проектом Mozilla просмотрщика PDF, написанного на языке JavaScript;
- GB Emulator - тест на основе проекта GameBoy-Online, в рамках которого развивается эмулятор игровой платформы GameBoy, написанный на JavaScript;
- CodeLoad - тест, измеряющий скорость инициализации популярных JavaScript-библиотек (Closure, jQuery) и выполнение типового кода на базе данных библиотек.