Создатель JSON представил новый тест производительности JavaScript в web-браузерах

Дуглас Крокфорд (Douglas Crockford), создатель и популяризатор формата JSON, возглавляющий в компании Yahoo разработки, связанные с языком JavaScript, выступил с инициативой измерения действительной производительности JavaScript-движков современных веб-браузеров.

По мнению некоторых исследователей, проанализировавших скорость работы наиболее популярных веб-служб, обычные тестовые комплекты, такие как SunSpider, V8 и Dromaeo, Kraken, rwBench и Peacekeeper, являются синтетическими тестами и не отражают поведение реальных web-приложений. Результаты тестирования также искажаются из-за того, что производители браузеров при выпуске новой версии стремятся максимально оптимизировать выполнение операций, влияющих на скорость выполнения типовых тестов. Опасность такой оптимизации связана не столько с накруткой показателей, сколько с тем, что производительность реальных приложений часто остаётся за кадром, поэтому в некоторых ситуация web-разработчикам приходится подстраиваться под JavaScript-движки и для повышения производительности использовать сомнительные приёмы программирования. Дополнительно упоминаются программы, завязанные на операциях с DOM (Document Object Model), на скорость работы которых в основном влияет производительность работы API DOM, а не производительность JavaScript-движка.

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

Измерив время проверки в JSLint собственных исходных текстов (размер выполняемого файла jslint.js составляет около 300 Кб или 6.5 тысяч строк кода), Дуглас получил неожиданные результаты, существенно расходящиеся с обычно используемыми тестовыми пакетами. Быстрее всего проверка была выполнена в браузере Internet Explorer 10, Firefox 4 и Opera 10 показали средние результаты, а медленнее всех оказался Chrome 10 (примечательно, что Chrome 10 лидирует при выполнении тестов SunSpider и V8):

  • IE 10 - 0.562;
  • Firefox 4.0.1 - 0.956;
  • Safari 5.0.5 - 0.984;
  • Opera 11.10 - 1.106;
  • IE 9 - 1.159;
  • Chrome 10 - 2.801.

©  OpenNet