Какво е JavaScript benchmark?

JavaScript benchmark измерва колко бързо се изпълнява един код, като го стартира многократно през фиксиран период от време и брои колко операции в секунда може да завърши. Бенчмаркването се използва обикновено за сравнение на два подхода към един и същ проблем — например, проверка дали Array.includes() е по-бърз от Array.indexOf() за даден случай на употреба. Резултатите могат да се различават значително между браузъри и устройства, тъй като всеки JavaScript двигател (V8, SpiderMonkey, JavaScriptCore) има свои оптимизации и JIT стратегии за компилация.

Описание на инструмента

Този инструмент ви позволява да поставите два JavaScript кода и да стартирате директно в браузъра си сравнение на производителност един срещу един. Всеки код се измерва през настраиваема продължителност, а резултатите показват операции в секунда и средното време на операция за двете функции. Лента за прогрес подчертава относителната разлика в производителност, което улеснява виждането кой подход е по-бърз на пръв поглед.

Функции

  • Стартира и двата кода в Web Worker, така че бенчмаркването никога не блокира или замразява раздела на браузъра
  • Настраиваема продължителност на бенчмаркването за балансиране на точност срещу време на чакане
  • Сравнение на операции/сек един до друг с визуална лента и процентна разлика

Как работи

Всеки код е обвит в цикъл, който се стартира през определената продължителност (по подразбиране 2 секунди) след фаза на загряване от 100 ms, за да позволи на JIT компилатора да оптимизира кода. Операциите се броят през измеренния период, а операциите/сек се изчисляват като count / elapsed_ms * 1000. Целият бенчмарк се стартира вътре в Web Worker, така че не може да получи достъп до DOM, но има достъп до стандартни JavaScript глобални променливи като Math, Date, performance, масиви и обекти.

Съвети

  • Держите кодовете самостоятелни; избягвайте странични ефекти, които се натрупват между итерациите
  • Използвайте по-дълга продължителност (3–5 секунди) за по-стабилни резултати при бързи операции
  • Резултатите отразяват вашия конкретен браузър и машина — винаги бенчмаркирайте в целевата среда