Бенчмарк JavaScript
Сравните две функции JavaScript рядом в web worker.
Ввод
Вывод
Документация
Что такое JavaScript бенчмарк?
JavaScript бенчмарк измеряет скорость выполнения кода путём его многократного запуска в течение фиксированного периода времени и подсчёта количества операций в секунду. Бенчмаркинг обычно используется для сравнения двух подходов к решению одной задачи — например, проверка того, быстрее ли Array.includes() работает, чем Array.indexOf() для конкретного случая использования. Результаты могут значительно отличаться между браузерами и устройствами, так как каждый JavaScript движок (V8, SpiderMonkey, JavaScriptCore) имеет собственные оптимизации и стратегии JIT компиляции.
Описание инструмента
Этот инструмент позволяет вставить два фрагмента кода JavaScript и запустить прямое сравнение производительности прямо в вашем браузере. Каждый фрагмент измеряется в течение настраиваемой длительности, а результаты показывают операции в секунду и среднее время на операцию для обеих функций. Полоса прогресса выделяет относительную разницу в производительности, что позволяет легко увидеть, какой подход быстрее.
Возможности
- Запускает оба фрагмента в Web Worker, поэтому бенчмарки никогда не блокируют и не зависают вкладку браузера
- Настраиваемая длительность бенчмарка для баланса между точностью и временем ожидания
- Сравнение операций в секунду рядом с визуальной полосой и процентной разницей
Как это работает
Каждый фрагмент заключён в цикл, который выполняется в течение указанной длительности (по умолчанию 2 секунды) после фазы прогрева в 100 мс, чтобы позволить JIT компилятору оптимизировать код. Операции подсчитываются во время измеряемого окна, а операции в секунду рассчитываются как count / elapsed_ms * 1000. Весь бенчмарк выполняется внутри Web Worker, поэтому он не может получить доступ к DOM, но имеет доступ к стандартным глобальным объектам JavaScript, таким как Math, Date, performance, массивы и объекты.
Советы
- Держите фрагменты самодостаточными; избегайте побочных эффектов, которые накапливаются между итерациями
- Используйте более длительное время (3–5 секунд) для более стабильных результатов на быстрых операциях
- Результаты отражают ваш конкретный браузер и машину — всегда выполняйте бенчмарк в целевой среде