Narzędzie do tworzenia testów wyników benchmarków
Bezpośredni dostęp do online narzędzia do tworzenia testów wyników JavaScript, bez konieczności instalacji. Porównuje szybkość wykonywania kodu JavaScript.
Informacje o Benchmark Builder
Narzędzie do bezpośredniego porównania mikro-benchmarków JavaScript: wklej dwa ciała funkcji (Snippet A i Snippet B), ustaw liczbę iteracji, a narzędzie uruchomi każdy z nich przez 100 wywołań rozgrzewających, a następnie przez skonfigurowaną liczbę wywołań mierzonych, po czym zgłosi łączny czas, operacje na sekundę oraz to, który snippet był szybszy i w jakim stosunku.
Jak używać
1. Ustaw Iteracje (domyślnie 10000) w górnej karcie. 2. W karcie Snippet A wpisz opcjonalną etykietę (domyślnie "A") oraz treść funkcji do benchmarku (np. `return Math.random()`). 3. Zrób to samo dla Snippet B (np. `return crypto.getRandomValues(new Uint32Array(1))[0]`). 4. Kliknij Uruchom — przycisk jest wyłączony, dopóki oba ciała snippetów nie będą niepuste. 5. Przeczytaj kartę Wynik: każdy snippet pokazuje łączny czas w milisekundach i operacje na sekundę, a także wiersz stopki podający szybszy snippet i proporcję prędkości. Jeśli snippet zgłosi wyjątek, jego błąd zostanie pokazany na czerwono.
Model wykonania i metryki
Każdy snippet jest opakowany za pomocą `new Function(code)` i wywoływany jako funkcja bez argumentów, więc musi być prawidłowym ciałem funkcji (użyj `return ...` do wykonania pracy; instrukcje najwyższego poziomu są dozwolone). - Rozgrzewka: 100 bezwarunkowych wywołań przed pomiarem, aby silnik JS mógł zoptymalizować. - Pomiar: `performance.now()` jest próbkowany przed i po uruchomieniu snippetu `iterations` razy w ciasnej pętli. - Operacje na sekundę: obliczane jako `iterations / (timeMs / 1000)`, zaokrąglone. - Proporcja: `max(timeA, timeB) / min(timeA, timeB)`, pokazywana z 2 miejscami po przecinku; snippet z mniejszym czasem jest zgłaszany jako szybszy. Należy pamiętać, że to jest mikro-benchmark w przeglądarce wykonywany w miarę możliwości, a nie statystycznie rygorystyczny zestaw: wyniki różnią się w zależności od obciążenia maszyny, silnika przeglądarki, pauz GC i eliminacji martwego kodu.
▶Dlaczego moje wyniki różnią się przy każdym kliknięciu Uruchom?
▶Czy snippet mogą uzyskać dostęp do zmiennych, importów lub async/await?
▶Co się stanie, gdy snippet zgłosi wyjątek?
▶Czy moje dane są wysyłane na serwer?
Jeśli ten tool był dla ciebie przydatny, pomyśl o tym, aby kupić mi kawę.
Kup mi kawę.