Wasm vs JavaScript benchmark Browse Catalog Results Experiment Evidence data v1

Project Overview & Harness Control

When does WebAssembly improve Web Applications?

This benchmark suite compares JavaScript and WebAssembly across 38 real-world workloads—ranging from audio DSP, 3D graphics, and neural AI models to Virtual DOM diffing, regex engines, and database queries. The evidence measures transfer, compilation, initialization, fixed work, and sample trajectories.

Interactive Benchmark Playground & Performance Comparison

Run JavaScript and WebAssembly benchmarks directly in browser workers across multi-iteration loops. Compare cold startup vs warm runtime optimizations and see real-time execution timing and speedup ratios.

“Cold start” here is the first iteration of a run in your current browser: worker load, Wasm compile and instantiate, input setup, then the first timed execution. Select 1 iteration to measure only that. What cold start includes, and how the controlled experiment defines cold more strictly.

Loading Interactive Benchmark Playground...

Evidence available now

Commit ddc8886 passed deno task check with 635 verification tests (100% green) and an independent review with no blocker, high, or medium finding. The acceptance package records the source and artifact hashes.

A Chrome 150 validation completed the visible JavaScript/Wasm control and returned two HTTP 201 responses, according to a parent attestation. The records were removed and no replayable browser artifact remains, so the attestation is unverified and supplies no timing evidence.

Evidence summary

Catalog Workloads
38
Playground Demos
38
Run Unattended
37
v2 Proposals
20
Verification Test Gates
647 Passed

Workload matrix

Absolute durations remain separate by target and cache state. Cold and warm are controlled protocol states with an exact definition.

Local pilot cells. No cell is accepted headline evidence.
Variant Cache Fresh launches Samples First scored median All-sample median p95 Status
Loading local evidence…

Complete trajectories

The first scored post-calibration iteration is retained alongside separate first-use lifecycle metrics. Slow samples are not silently removed.

No trajectories loaded.

Raw run inspector

Each record exposes correctness, work counters, build footprint, environment, metric availability, failures, and every sample.

How to read this page

Multi-language comparison (run it here)

The same frozen sum-u32 kernel, implemented identically in JavaScript, WAT, AssemblyScript, C, C++, Rust, and Dart/WasmGC — compiled to WebAssembly and measured side by side in this tab.

Run the comparison

Ready. Select loop iterations, then click Start.

All timings are exploratory measurements taken in this browser tab; the arithmetic is verified bit-identical to the committed oracle before any timing is shown.