Co to jest benchmark JavaScript?

Benchmark JavaScript mierzy szybkość wykonania kodu poprzez wielokrotne uruchomienie go przez ustalony okres czasu i zliczenie, ile operacji na sekundę może wykonać. Benchmarking jest powszechnie używany do porównania dwóch podejść do tego samego problemu — na przykład sprawdzenia, czy Array.includes() jest szybsze niż Array.indexOf() dla danego przypadku użycia. Wyniki mogą się znacznie różnić między przeglądarkami i urządzeniami, ponieważ każdy silnik JavaScript (V8, SpiderMonkey, JavaScriptCore) ma własne optymalizacje i strategie kompilacji JIT.

Opis narzędzia

To narzędzie pozwala wkleić dwa fragmenty kodu JavaScript i uruchomić bezpośrednio w przeglądarce porównanie wydajności typu „jeden na jeden". Każdy fragment jest mierzony przez konfigurowalny czas trwania, a wyniki pokazują operacje na sekundę i średni czas na operację dla obu funkcji. Pasek postępu podkreśla względną różnicę wydajności, ułatwiając szybkie zobaczenie, które podejście jest szybsze.

Funkcje

  • Uruchamia oba fragmenty w Web Worker, dzięki czemu benchmarki nigdy nie blokują ani nie zamrażają karty przeglądarki
  • Konfigurowalny czas trwania benchmarku, aby zrównoważyć dokładność i czas oczekiwania
  • Porównanie operacji na sekundę obok siebie z wizualnym paskiem i różnicą procentową

Jak to działa

Każdy fragment jest zawinięty w pętlę, która działa przez określony czas (domyślnie 2 sekundy) po fazie rozgrzewki trwającej 100 ms, aby umożliwić kompilatorowi JIT optymalizację kodu. Operacje są zliczane podczas okna czasowego, a operacje na sekundę są obliczane jako count / elapsed_ms * 1000. Cały benchmark działa wewnątrz Web Worker, więc nie może uzyskać dostępu do DOM, ale ma dostęp do standardowych globalnych zmiennych JavaScript, takich jak Math, Date, performance, tablice i obiekty.

Wskazówki

  • Utrzymuj fragmenty samodzielne; unikaj efektów ubocznych, które się kumulują między iteracjami
  • Użyj dłuższego czasu trwania (3–5 sekund), aby uzyskać bardziej stabilne wyniki dla szybkich operacji
  • Wyniki odzwierciedlają Twoją konkretną przeglądarkę i maszynę — zawsze wykonuj benchmark w docelowym środowisku