JavaScript Benchmark
Benchmark en vergelijk twee JavaScript-functies naast elkaar in een web worker.
Invoer
Uitvoer
Readme
Wat is een JavaScript benchmark?
Een JavaScript benchmark meet hoe snel een stukje code wordt uitgevoerd door het herhaaldelijk uit te voeren gedurende een vaste periode en te tellen hoeveel bewerkingen per seconde het kan voltooien. Benchmarking wordt vaak gebruikt om twee benaderingen van hetzelfde probleem te vergelijken — bijvoorbeeld controleren of Array.includes() sneller is dan Array.indexOf() voor een bepaald geval. Resultaten kunnen aanzienlijk verschillen tussen browsers en apparaten, omdat elke JavaScript engine (V8, SpiderMonkey, JavaScriptCore) zijn eigen optimalisaties en JIT-compilatiestrategieën heeft.
Hulpprogrammabeschrijving
Met dit hulpprogramma kunt u twee JavaScript-codefragmenten plakken en een directe prestatievergelijking in uw browser uitvoeren. Elk fragment wordt getimed over een configureerbare duur, en de resultaten tonen bewerkingen per seconde en gemiddelde tijd per bewerking voor beide functies. Een voortgangsbalk markeert het relatieve prestatieverschil, zodat u in één oogopslag kunt zien welke benadering sneller is.
Functies
- Voert beide fragmenten uit in een Web Worker zodat benchmarks nooit de browsertabblad blokkeren of bevriezen
- Configureerbare benchmarkduur voor balancering tussen nauwkeurigheid en wachttijd
- Vergelijking van bewerkingen/sec naast elkaar met een visuele balk en procentueel verschil
Hoe het werkt
Elk fragment wordt verpakt in een lus die gedurende de opgegeven duur (standaard 2 seconden) wordt uitgevoerd na een opwarmfase van 100 ms om de JIT-compiler toe te staan de code te optimaliseren. Bewerkingen worden geteld tijdens het getimede venster, en bewerkingen/sec wordt berekend als count / elapsed_ms * 1000. De volledige benchmark wordt uitgevoerd in een Web Worker zodat deze geen toegang heeft tot de DOM, maar wel toegang heeft tot standaard JavaScript globals zoals Math, Date, performance, arrays en objecten.
Tips
- Houd fragmenten zelfstandig; vermijd bijwerkingen die zich tussen iteraties ophopen
- Gebruik een langere duur (3–5 seconden) voor stabielere resultaten bij snelle bewerkingen
- Resultaten weerspiegelen uw specifieke browser en machine — benchmark altijd in de doelomgeving