Benchmark Builder
Create JavaScript benchmark cases, tune warmup and iterations, and compare browser-run performance side by side.
Benchmark settings
How many measured runs each case should execute. Higher values usually produce steadier numbers.
How many runs to execute before measurement to let the JavaScript engine settle.
Your benchmark code runs only in this browser and is not uploaded, but saved cases and settings stay in local storage until you clear them.
Benchmark cases
Benchmark results
Run a benchmark to populate the comparison table.
| Notes |
|---|
When to use Benchmark Builder
Benchmark Builder is useful when you need fast, repeatable browser-side comparisons:
-
Compare implementation strategies
Measure two or more JavaScript snippets side by side before choosing one for production code.
-
Validate an optimisation claim
Check whether a refactor or micro-optimisation actually improves throughput before shipping it.
-
Prepare benchmark evidence for a PR
Copy the summary or export CSV results to support a pull request, issue, or architecture discussion.
-
Tune warmup and iteration settings
Increase warmup or iterations to reduce noise and get more stable results for sensitive benchmarks.
-
Resume saved benchmark work
Come back after a reload and continue working with the same saved cases and settings from local storage.
Frequently asked questions
-
Does Benchmark Builder store my benchmark cases?
Yes. The app stores your benchmark cases plus iteration and warmup settings locally in this browser under benchmarkBuilder.state.v1 so they return after reload.
-
Is any of my benchmark data sent to a server?
No. Benchmark Builder runs locally in your browser and does not send your code or settings to a server.
-
What exactly is restored after I reload the page?
The saved cases, iteration count, and warmup count are restored from local storage so you can continue where you left off.
-
How do I delete saved benchmark data?
Clear this site's browser storage or remove the saved AppDoesIt site data in your browser settings to delete the stored benchmark state.
-
Why do results change between runs?
Small performance differences are normal. Use consistent inputs, increase iterations or warmup, and compare multiple runs before drawing conclusions.
Benchmark Builder Help
Benchmark Builder runs your JavaScript snippets locally in a Web Worker so you can compare approaches without sending code to a server.
How to run a benchmark
- Add or rename cases, then paste the JavaScript snippet you want to measure for each one.
- Set the iteration count and warmup rounds. These settings, along with your cases, are saved in this browser under benchmarkBuilder.state.v1 and restored after reload.
- Run the benchmark, review the results table, then copy or download the results when you need to share them.
What the app does
- Runs each case in a dedicated Web Worker so the main page stays responsive.
- Compares ops/sec, average nanoseconds per operation, total runtime, and notes for each case.
- Stores your benchmark cases, iterations, and warmup locally in this browser only; nothing is sent to a server.
- Lets you remove saved benchmark data by clearing this browser's site storage for AppDoesIt.
Benchmark tips
- Keep each case focused on one operation so the comparison stays meaningful.
- Increase warmup when you want to reduce noise from JIT compilation.
- Use the same input size and setup for every case to keep results fair.
- Avoid benchmarking untrusted code, because the snippets still run inside your browser.