Benchmarkbuilder
Gratis online JS-benchmark builder, geen installatie nodig. Vergelijk de snelheid van JavaScript-code-executeren.
Over Benchmark Builder
Een head-to-head JavaScript-microbenchmarktool: plak twee functieberichten (Snippet A en Snippet B), stel een iteratieaantal in, en de tool draait elk met 100 opwarm-aanroepen gevolgd door het geconfigureerde aantal gemeten aanroepen, en rapporteert vervolgens de totale tijd, bewerkingen per seconde, en welk snippet sneller was en met welke verhouding.
Gebruik
1. Stel Iteraties in (standaard 10000) in de bovenste kaart. 2. Typ in de kaart Snippet A een optioneel label (standaard "A") en de te benchmarken functiebody (bijv. `return Math.random()`). 3. Doe hetzelfde voor Snippet B (bijv. `return crypto.getRandomValues(new Uint32Array(1))[0]`). 4. Klik op Uitvoeren — de knop is uitgeschakeld totdat beide snippetbodies niet leeg zijn. 5. Lees de resultaatkaart: elk snippet toont totale tijd in milliseconden en bewerkingen per seconde, plus een voettekstregel die het snellere snippet en de snelheidsverhouding noemt. Als een snippet een uitzondering werpt, wordt de fout in plaats daarvan in rood getoond.
Uitvoeringsmodel en metrieke gegevens
Elk snippet wordt verpakt met `new Function(code)` en aangeroepen als functie zonder argumenten, dus het moet een geldige functiebody zijn (gebruik `return ...` om werk te doen; instructies op het hoogste niveau zijn toegestaan). - Opwarmen: 100 onvoorwaardelijke aanroepen vóór de tijdmeting, zodat de JS-engine kan optimaliseren. - Meting: `performance.now()` wordt bemonsterd voor en na het uitvoeren van het snippet `iterations` keer in een strakke lus. - Bewerkingen per seconde: berekend als `iterations / (timeMs / 1000)`, afgerond. - Verhouding: `max(timeA, timeB) / min(timeA, timeB)`, getoond met 2 decimalen; het snippet met de kleinste tijd wordt als sneller gerapporteerd. Houd er rekening mee dat dit een best-effort microbenchmark in de browser is, geen statistisch rigoureuze suite: resultaten variëren met machinebelasting, browserengine, GC-pauzes en eliminatie van dode code.
▶Waarom zijn mijn resultaten elke keer dat ik op Uitvoeren klik anders?
▶Kunnen de snippets variabelen, imports of async/await benaderen?
▶Wat gebeurt er als een snippet een uitzondering werpt?
▶Worden mijn gegevens naar een server gestuurd?
Als deze tool je heeft geholpen, denk dan eens aan het geven van een kop koffie aan mij.
Koop me een kop koffie.