Google решил, что существующие тесты JavaScript просто не справляются с задачей тестирования современного языка на современной веб-странице. Решением является Octane, новый тест, который Google разработал, чтобы лучше представить, как мы используем браузеры сегодня. Конечно, все мы знаем, что на самом деле не так с тестами …
Как правило, они подтверждают ту точку зрения, которой придерживались разработчики теста. То, какие действия вы включаете в тест и как вы их взвешиваете, влияет на результат, и это можно сделать, чтобы показать ваши любимые занятия в хорошем свете. Даже если вы согласны с тем, что эталонный тест является справедливым, его выводы актуальны только для вас и любых проектов, над которыми вы можете работать, если сочетание действий, используемых в эталонном тесте, имеет некоторое сходство с тем, что вы пытаетесь сделать.
В случае Octane смесь очень важна. Вместо того, чтобы создавать специальные тестовые задачи, Octane использует некоторые реальные приложения и запускает их как набор для получения общего показателя производительности. В исходный тест V8, который Google использовал для тестирования своего движка JavaScript, добавлено пять новых задач:
Box2DWeb запускает JavaScript-порт популярного движка 2D-физики, который стоит за многими известными симуляторами и веб-играми.
Мандрил тестирует порт 3D Bullet Engine на JavaScript с изюминкой: исходный исходный код движка на C++ переводится в JavaScript компилятором Mandreel компании Onan Games, который также используется в бесчисленных веб-играх.
Pdf.js основан на программе чтения PDF Mozilla и показывает, как приложения JavaScript могут заменить сложные собственные надстройки браузера. Он измеряет, насколько быстро браузер декодирует образец PDF-документа.
GB Emulator является производным от эмулятора с открытым исходным кодом известной игровой консоли, на котором запущена 3D-демонстрация.
CodeLoad измеряет, насколько быстро движок JavaScript может загружать часто используемые библиотеки JavaScript и запускать в них код. Исходный код этого теста получен из библиотек с открытым исходным кодом (Closure, jQuery).
Вы можете видеть, что три теста в значительной степени ориентированы на графику, и есть некоторые функции из WebGL, которые останавливают выполнение теста в IE9, но он работает в IE10. Исходные задачи в тесте V8:
- Тест моделирования ядра RichardsOS, первоначально написанный на BCPL Мартином Ричардсом.
- DeltaBlue Односторонний решатель ограничений, первоначально написанный на Smalltalk Джоном Мэлони и Марио Вольчко.
- Тест шифрования и дешифрования на основе кода Тома Ву.
- Тест трассировки RayTraceRay на основе кода Адама Бурмистера.
- Тесты EarleyBoyerClassic Scheme, переведенные на JavaScript компилятором Scheme2Js Флориана Лойча.
- RegExp Тест регулярных выражений, созданный путем извлечения операций с регулярными выражениями из 50 самых популярных веб-страниц.
- Тест производительности SplayData, который работает с растущими деревьями и проверяет подсистему автоматического управления памятью.
- NavierStokes решает уравнения NavierStokes в 2D, сильно манипулируя массивами двойной точности. На основе кода Оливера Ханта.
Это довольно интенсивный набор тестов, но одним очевидным недостающим аспектом является взаимодействие JavaScript с DOM. Если вы пишете программу, которая будет динамически обновлять структуру страницы, то эталонный тест мало что вам скажет.
Octane можно запустить в любом веб-браузере, просто посетив веб-сайт и нажав кнопку «Пуск». Он также имеет приятный пользовательский интерфейс и будет работать в некоторых мобильных браузерах.