JavaScript-Benchmark
Vergleichen und benchmarken Sie zwei JavaScript-Funktionen nebeneinander in einem Web Worker.
Eingabe
Ausgabe
Readme
Was ist ein JavaScript-Benchmark?
Ein JavaScript-Benchmark misst, wie schnell ein Code-Snippet ausgeführt wird, indem es wiederholt über einen festen Zeitraum ausgeführt wird und gezählt wird, wie viele Operationen pro Sekunde es abschließen kann. Benchmarking wird häufig verwendet, um zwei Ansätze für dasselbe Problem zu vergleichen – zum Beispiel, um zu überprüfen, ob Array.includes() schneller ist als Array.indexOf() für einen bestimmten Anwendungsfall. Die Ergebnisse können zwischen Browsern und Geräten erheblich variieren, da jede JavaScript-Engine (V8, SpiderMonkey, JavaScriptCore) ihre eigenen Optimierungen und JIT-Kompilierungsstrategien hat.
Werkzeugbeschreibung
Dieses Tool ermöglicht es Ihnen, zwei JavaScript-Code-Snippets einzufügen und einen direkten Leistungsvergleich in Ihrem Browser durchzuführen. Jedes Snippet wird über eine konfigurierbare Dauer gemessen, und die Ergebnisse zeigen Operationen pro Sekunde und durchschnittliche Zeit pro Operation für beide Funktionen. Ein Fortschrittsbalken hebt den relativen Leistungsunterschied hervor, sodass Sie auf einen Blick sehen können, welcher Ansatz schneller ist.
Funktionen
- Führt beide Snippets in einem Web Worker aus, sodass Benchmarks den Browser-Tab nie blockieren oder einfrieren
- Konfigurierbare Benchmark-Dauer für die Balance zwischen Genauigkeit und Wartezeit
- Nebeneinander-Vergleich von Ops/Sek. mit visuellem Balken und Prozentdifferenz
Funktionsweise
Jedes Snippet wird in eine Schleife eingebunden, die für die angegebene Dauer (Standard 2 Sekunden) nach einer 100-ms-Aufwärmphase ausgeführt wird, um dem JIT-Compiler zu ermöglichen, den Code zu optimieren. Operationen werden während des Messfensters gezählt, und Ops/Sek. wird als count / elapsed_ms * 1000 berechnet. Der gesamte Benchmark wird in einem Web Worker ausgeführt, sodass er nicht auf das DOM zugreifen kann, aber Zugriff auf Standard-JavaScript-Globals wie Math, Date, performance, Arrays und Objekte hat.
Tipps
- Halten Sie Snippets in sich geschlossen; vermeiden Sie Nebenwirkungen, die sich zwischen Iterationen ansammeln
- Verwenden Sie eine längere Dauer (3–5 Sekunden) für stabilere Ergebnisse bei schnellen Operationen
- Die Ergebnisse spiegeln Ihren spezifischen Browser und Ihre Maschine wider – führen Sie Benchmarks immer in der Zielumgebung durch