MEASURED DATA

Compare — startup vs throughput

MODEL · estimated from measured phases, not a measured end-to-end result
total = compile + instantiate + first call + Σ per-call time (calls 2…n)
Estimated total at 100 calls
ranked · bar length on log scale
1 wasmi interpreter 21.8 µs
2 libwasm interpreter 22.2 µs
3 libwasm-jit optimizing-jit-tiered 22.3 µs
4 jsc OMG (forced tier-up) 23.1 µs
5 wago railshot 33.9 µs
6 wazero interpreter 37 µs
7 wizard interpreter 46.6 µs
8 wazy native-jit 52.7 µs
9 wizard singlepass-jit 53.3 µs
10 v8 turboshaft 103 µs
11 wazero compiler 105 µs
12 spidermonkey ion-only 149 µs
13 wamr fast-jit 151 µs
14 wasmer singlepass-jit 190 µs
15 wasmedge interpreter 198 µs
16 wasmer cranelift-jit 342 µs
17 wasmtime winch 347 µs
18 wasmtime cranelift 365 µs
19 wamr interpreter 415 µs
20 wizard interpreter 970 µs
21 wavm llvm-jit 1.51 ms
22 chasm jvm-interpreter 1.52 ms
23 endive jvm-interpreter 2.71 ms
24 chicory interpreter 2.71 ms
25 wasmedge jit 3.48 ms
26 wasmer llvm-jit 4.27 ms
27 wamr llvm-jit 6.17 ms
28 zwasm jit 8.11 ms
29 zwasm interpreter 8.6 ms
30 endive jvm-bytecode-compiler 26 ms
31 chicory jvm-bytecode-compiler 27.4 ms
32 w2c2 GCC 81.4 ms
33 wasm2c GCC 183 ms
34 wasm2go native-go-aot 188 ms
35 graalwasm truffle-graal 296 ms
Total vs invocations
log–log · vertical line = current setting
10 µs100 µs1 ms10 ms100 ms1 s10 s100 s1000 s 110¹10²10³10⁴10⁵10⁶
Where the lowest-total choice changes
from 1 call libwasm interpreter
≈ 81 calls wasmi interpreter
≈ 110 calls jsc OMG (forced tier-up)
Excluded from this model
endive cranelift-aot unavailable on this machine
wasm3 interpreter missing, unsupported or failed phase measurement in the selected snapshot
This model sums independently measured phase medians from the same sealed report. Steady cost is assumed constant; tier-up curves and cached-artifact load costs were not collected. The estimate is not a measured percentile.