Silverfir-nano in wasmi-benchmarks — Apple M4
A local run of the upstream wasmi-benchmarks suite on an Apple M4: both Silverfir-nano tiers against every other engine the suite builds on macOS arm64, over 21 execution and 7 startup workloads. Each chart holds every engine that ran that workload, with the measured times on the bars.
Optimizing JIT class
silverfir-nano.jit
#1of 6
Fastest on 10 of 20 execution cases. The next engine, wasmer.cranelift, averages 1.20× its time.
Interpreter class
silverfir-nano.interpreter
#1of 16
Fastest on 18 of 18 execution cases. The next engine, wasm3.eager, averages 1.73× its time.
Startup rank, JIT class
4/6
31.5× the time of v8, the fastest JIT to start
Startup rank, interpreter class
18/23
20.0× the time of wasmi-v1.lazy.unchecked
Engines compared
22 engines
21 execution cases, 7 startup cases
Execution — by engine class
The execution benchmarks time calls into an already instantiated module; compilation and instantiation stay outside the timed loop. Absolute times differ by orders of magnitude between workloads, so a cross-workload summary has to be relative: each engine is scored against whichever engine won that case, those per-case ratios are combined with a geometric mean, and the result is divided by the fastest engine in the class — so the leader reads 1.00× and every other bar is how many times longer that engine takes on average. JITs and interpreters get their own chart and their own leader: the two classes are two orders of magnitude apart, and on one axis every JIT collapses into the same stub. The per-case charts below carry the measured times.
JIT execution speed Geometric mean over the 20 cases every JIT ran
Silverfir-nano v8 wasmtime.cranelift Other engines
0×
2×
4×
6×
× silverfir-nano.jit — lower is better
silverfir-nano.jit optimizing JIT
1.00×
silverfir-nano.jit — optimizing JIT
class leader, fastest on 10 of 20 cases
wasmer.cranelift optimizing JIT
1.20×
wasmer.cranelift — optimizing JIT
1.20× the time of silverfir-nano.jit, geomean over 20 cases
fastest on 2 of them
v8 multi-tier JIT
1.20×
v8 — multi-tier JIT
1.20× the time of silverfir-nano.jit, geomean over 20 cases
fastest on 5 of them
wasmtime.cranelift optimizing JIT
1.25×
wasmtime.cranelift — optimizing JIT
1.25× the time of silverfir-nano.jit, geomean over 20 cases
fastest on 3 of them
wasmtime.winch baseline JIT
2.93×
wasmtime.winch — baseline JIT
2.93× the time of silverfir-nano.jit, geomean over 20 cases
fastest on 0 of them
wasmer.singlepass baseline JIT
4.36×
wasmer.singlepass — baseline JIT
4.36× the time of silverfir-nano.jit, geomean over 20 cases
fastest on 0 of them
Each bar is the geometric mean of the per-case time ratio against the class leader, over the cases both engines ran.
Interpreter execution speed Geometric mean over the 18 cases every interpreter ran
Silverfir-nano wasm3.eager wasmi-v2.eager.checked Other engines
0×
10×
20×
30×
× silverfir-nano.interpreter — lower is better
silverfir-nano.interpreter
1.00×
silverfir-nano.interpreter — interpreter
class leader, fastest on 18 of 18 cases
wasm3.eager
1.73×
wasm3.eager — interpreter
1.73× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wasmi-v2.eager.checked
1.94×
wasmi-v2.eager.checked — interpreter
1.94× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wamr
2.31×
wamr — interpreter
2.31× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
stitch
2.45×
stitch — interpreter
2.45× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wasmi-v1.eager.checked
2.55×
wasmi-v1.eager.checked — interpreter
2.55× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wasmi-v0.32
2.89×
wasmi-v0.32 — interpreter
2.89× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wasmtime.pulley
3.98×
wasmtime.pulley — interpreter
3.98× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wasmi-v0.31
5.39×
wasmi-v0.31 — interpreter
5.39× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
fizzy
5.98×
fizzy — interpreter
5.98× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
tinywasm
6.78×
tinywasm — interpreter
6.78× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
spacewasm
11.1×
spacewasm — interpreter
11.1× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
submilli-wasm
12.1×
submilli-wasm — interpreter
12.1× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
toywasm
21.4×
toywasm — interpreter
21.4× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
dlr-wasm-interpreter
22.7×
dlr-wasm-interpreter — interpreter
22.7× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
wasmedge
23.9×
wasmedge — interpreter
23.9× the time of silverfir-nano.interpreter, geomean over 18 cases
fastest on 0 of them
Same construction as the JIT chart, inside the interpreter class — the two baselines are different engines.
Execution — case by case
Measured time per workload, JITs on the left and interpreters on the right, each on its own linear axis. This is where a summary can mislead: engines trade places from one workload to the next. The colours are fixed across every chart on this page: Silverfir-nano is blue, and each of the four reference engines keeps a hue of its own — wasmtime.cranelift orange and v8 green among the JITs, wasm3.eager amber and wasmi-v2.eager.checked pink among the interpreters.
argon2 bulk-ops compression counter-global counter-local counter-param fibonacci-iter fibonacci-rec fibonacci-tail json-parse mandelbrot matrix-mul nbody prime-sieve regex-redux reverse-complement sort-dyn sort spectralnorm tiny-keccak word-count
execute/argon2input 3000
JIT 6 engines
0
20
40
60
time in ms — lower is better
silverfir-nano.jit
5.13 ms
silverfir-nano.jit — optimizing JIT
5.13 ms
1.00× the fastest engine here
v8
16.74 ms
v8 — multi-tier JIT
16.74 ms
3.26× the fastest engine here
wasmtime.cranelift
19.96 ms
wasmtime.cranelift — optimizing JIT
19.96 ms
3.89× the fastest engine here
wasmer.cranelift
20.15 ms
wasmer.cranelift — optimizing JIT
20.15 ms
3.93× the fastest engine here
wasmer.singlepass
31.26 ms
wasmer.singlepass — baseline JIT
31.26 ms
6.10× the fastest engine here
wasmtime.winch
43.45 ms
wasmtime.winch — baseline JIT
43.45 ms
8.47× the fastest engine here
Interpreter 16 engines
0
1000
2000
3000
time in ms — lower is better
silverfir-nano.interpreter
106.88 ms
silverfir-nano.interpreter — interpreter
106.88 ms
1.00× the fastest engine here
wasm3.eager
157.03 ms
wasm3.eager — interpreter
157.03 ms
1.47× the fastest engine here
wamr
207.97 ms
wamr — interpreter
207.97 ms
1.95× the fastest engine here
wasmi-v1.eager.checked
235.75 ms
wasmi-v1.eager.checked — interpreter
235.75 ms
2.21× the fastest engine here
stitch
250.67 ms
stitch — interpreter
250.67 ms
2.35× the fastest engine here
wasmi-v2.eager.checked
260.54 ms
wasmi-v2.eager.checked — interpreter
260.54 ms
2.44× the fastest engine here
wasmi-v0.32
280.75 ms
wasmi-v0.32 — interpreter
280.75 ms
2.63× the fastest engine here
wasmtime.pulley
284.16 ms
wasmtime.pulley — interpreter
284.16 ms
2.66× the fastest engine here
wasmi-v0.31
633.21 ms
wasmi-v0.31 — interpreter
633.21 ms
5.92× the fastest engine here
tinywasm
754.25 ms
tinywasm — interpreter
754.25 ms
7.06× the fastest engine here
fizzy
758.14 ms
fizzy — interpreter
758.14 ms
7.09× the fastest engine here
submilli-wasm
1.38 s
submilli-wasm — interpreter
1.38 s
12.9× the fastest engine here
spacewasm
1.44 s
spacewasm — interpreter
1.44 s
13.4× the fastest engine here
toywasm
2.24 s
toywasm — interpreter
2.24 s
21.0× the fastest engine here
dlr-wasm-interpreter
2.50 s
dlr-wasm-interpreter — interpreter
2.50 s
23.3× the fastest engine here
wasmedge
2.72 s
wasmedge — interpreter
2.72 s
25.5× the fastest engine here
execute/bulk-opsinput 5000
JIT 6 engines
0
200
400
600
time in µs — lower is better
silverfir-nano.jit
437.5 µs
silverfir-nano.jit — optimizing JIT
437.5 µs
1.00× the fastest engine here
wasmer.cranelift
446.9 µs
wasmer.cranelift — optimizing JIT
446.9 µs
1.02× the fastest engine here
v8
453.3 µs
v8 — multi-tier JIT
453.3 µs
1.04× the fastest engine here
wasmtime.cranelift
457.1 µs
wasmtime.cranelift — optimizing JIT
457.1 µs
1.04× the fastest engine here
wasmer.singlepass
460.8 µs
wasmer.singlepass — baseline JIT
460.8 µs
1.05× the fastest engine here
wasmtime.winch
463.2 µs
wasmtime.winch — baseline JIT
463.2 µs
1.06× the fastest engine here
Interpreter 14 engines
0
200
400
600
800
time in µs — lower is better
silverfir-nano.interpreter
378.0 µs
silverfir-nano.interpreter — interpreter
378.0 µs
1.00× the fastest engine here
wasmi-v0.32
452.2 µs
wasmi-v0.32 — interpreter
452.2 µs
1.20× the fastest engine here
wasm3.eager
460.4 µs
wasm3.eager — interpreter
460.4 µs
1.22× the fastest engine here
stitch
466.9 µs
stitch — interpreter
466.9 µs
1.23× the fastest engine here
wasmi-v1.eager.checked
471.1 µs
wasmi-v1.eager.checked — interpreter
471.1 µs
1.25× the fastest engine here
wasmi-v2.eager.checked
482.4 µs
wasmi-v2.eager.checked — interpreter
482.4 µs
1.28× the fastest engine here
wamr
484.3 µs
wamr — interpreter
484.3 µs
1.28× the fastest engine here
wasmi-v0.31
544.6 µs
wasmi-v0.31 — interpreter
544.6 µs
1.44× the fastest engine here
tinywasm
571.1 µs
tinywasm — interpreter
571.1 µs
1.51× the fastest engine here
submilli-wasm
610.2 µs
submilli-wasm — interpreter
610.2 µs
1.61× the fastest engine here
wasmtime.pulley
749.9 µs
wasmtime.pulley — interpreter
749.9 µs
1.98× the fastest engine here
dlr-wasm-interpreter
764.0 µs
dlr-wasm-interpreter — interpreter
764.0 µs
2.02× the fastest engine here
toywasm
772.1 µs
toywasm — interpreter
772.1 µs
2.04× the fastest engine here
wasmedge
798.3 µs
wasmedge — interpreter
798.3 µs
2.11× the fastest engine here
execute/compressioninput 152089
JIT 6 engines
0
2
4
6
8
time in ms — lower is better
silverfir-nano.jit
4.56 ms
silverfir-nano.jit — optimizing JIT
4.56 ms
1.00× the fastest engine here
wasmtime.cranelift
4.74 ms
wasmtime.cranelift — optimizing JIT
4.74 ms
1.04× the fastest engine here
wasmer.cranelift
4.74 ms
wasmer.cranelift — optimizing JIT
4.74 ms
1.04× the fastest engine here
v8
4.96 ms
v8 — multi-tier JIT
4.96 ms
1.09× the fastest engine here
wasmtime.winch
6.68 ms
wasmtime.winch — baseline JIT
6.68 ms
1.46× the fastest engine here
wasmer.singlepass
7.25 ms
wasmer.singlepass — baseline JIT
7.25 ms
1.59× the fastest engine here
Interpreter 16 engines
0
100
200
300
400
time in ms — lower is better
silverfir-nano.interpreter
16.00 ms
silverfir-nano.interpreter — interpreter
16.00 ms
1.00× the fastest engine here
wasm3.eager
22.48 ms
wasm3.eager — interpreter
22.48 ms
1.41× the fastest engine here
wasmi-v1.eager.checked
30.55 ms
wasmi-v1.eager.checked — interpreter
30.55 ms
1.91× the fastest engine here
wamr
36.53 ms
wamr — interpreter
36.53 ms
2.28× the fastest engine here
wasmi-v0.32
37.43 ms
wasmi-v0.32 — interpreter
37.43 ms
2.34× the fastest engine here
wasmi-v2.eager.checked
37.62 ms
wasmi-v2.eager.checked — interpreter
37.62 ms
2.35× the fastest engine here
stitch
41.93 ms
stitch — interpreter
41.93 ms
2.62× the fastest engine here
wasmtime.pulley
51.70 ms
wasmtime.pulley — interpreter
51.70 ms
3.23× the fastest engine here
fizzy
85.27 ms
fizzy — interpreter
85.27 ms
5.33× the fastest engine here
wasmi-v0.31
101.45 ms
wasmi-v0.31 — interpreter
101.45 ms
6.34× the fastest engine here
tinywasm
110.86 ms
tinywasm — interpreter
110.86 ms
6.93× the fastest engine here
spacewasm
163.40 ms
spacewasm — interpreter
163.40 ms
10.2× the fastest engine here
submilli-wasm
171.21 ms
submilli-wasm — interpreter
171.21 ms
10.7× the fastest engine here
toywasm
303.01 ms
toywasm — interpreter
303.01 ms
18.9× the fastest engine here
wasmedge
346.36 ms
wasmedge — interpreter
346.36 ms
21.6× the fastest engine here
dlr-wasm-interpreter
358.13 ms
dlr-wasm-interpreter — interpreter
358.13 ms
22.4× the fastest engine here
execute/counter-globalinput 500000
JIT 6 engines
0
250
500
750
1000
time in µs — lower is better
v8
277.0 µs
v8 — multi-tier JIT
277.0 µs
1.00× the fastest engine here
silverfir-nano.jit
427.8 µs
silverfir-nano.jit — optimizing JIT
427.8 µs
1.54× the fastest engine here
wasmtime.cranelift
447.3 µs
wasmtime.cranelift — optimizing JIT
447.3 µs
1.61× the fastest engine here
wasmer.cranelift
451.9 µs
wasmer.cranelift — optimizing JIT
451.9 µs
1.63× the fastest engine here
wasmtime.winch
524.2 µs
wasmtime.winch — baseline JIT
524.2 µs
1.89× the fastest engine here
wasmer.singlepass
904.4 µs
wasmer.singlepass — baseline JIT
904.4 µs
3.26× the fastest engine here
Interpreter 16 engines
0
5
10
15
time in ms — lower is better
silverfir-nano.interpreter
652.8 µs
silverfir-nano.interpreter — interpreter
652.8 µs
1.00× the fastest engine here
wasmi-v2.eager.checked
1.04 ms
wasmi-v2.eager.checked — interpreter
1.04 ms
1.60× the fastest engine here
wasm3.eager
1.28 ms
wasm3.eager — interpreter
1.28 ms
1.96× the fastest engine here
wasmi-v1.eager.checked
1.74 ms
wasmi-v1.eager.checked — interpreter
1.74 ms
2.66× the fastest engine here
wamr
1.80 ms
wamr — interpreter
1.80 ms
2.76× the fastest engine here
fizzy
1.99 ms
fizzy — interpreter
1.99 ms
3.04× the fastest engine here
wasmi-v0.32
1.99 ms
wasmi-v0.32 — interpreter
1.99 ms
3.04× the fastest engine here
wasmtime.pulley
2.00 ms
wasmtime.pulley — interpreter
2.00 ms
3.06× the fastest engine here
wasmi-v0.31
2.24 ms
wasmi-v0.31 — interpreter
2.24 ms
3.43× the fastest engine here
stitch
3.44 ms
stitch — interpreter
3.44 ms
5.26× the fastest engine here
tinywasm
4.95 ms
tinywasm — interpreter
4.95 ms
7.58× the fastest engine here
spacewasm
5.80 ms
spacewasm — interpreter
5.80 ms
8.88× the fastest engine here
submilli-wasm
7.89 ms
submilli-wasm — interpreter
7.89 ms
12.1× the fastest engine here
toywasm
10.87 ms
toywasm — interpreter
10.87 ms
16.7× the fastest engine here
dlr-wasm-interpreter
11.05 ms
dlr-wasm-interpreter — interpreter
11.05 ms
16.9× the fastest engine here
wasmedge
11.16 ms
wasmedge — interpreter
11.16 ms
17.1× the fastest engine here
execute/counter-localinput 1000000
JIT 6 engines
0
200
400
600
800
time in µs — lower is better
wasmtime.cranelift
248.1 µs
wasmtime.cranelift — optimizing JIT
248.1 µs
1.00× the fastest engine here
wasmer.cranelift
248.3 µs
wasmer.cranelift — optimizing JIT
248.3 µs
1.00× the fastest engine here
silverfir-nano.jit
248.8 µs
silverfir-nano.jit — optimizing JIT
248.8 µs
1.00× the fastest engine here
v8
252.2 µs
v8 — multi-tier JIT
252.2 µs
1.02× the fastest engine here
wasmer.singlepass
499.5 µs
wasmer.singlepass — baseline JIT
499.5 µs
2.01× the fastest engine here
wasmtime.winch
768.3 µs
wasmtime.winch — baseline JIT
768.3 µs
3.10× the fastest engine here
Interpreter 16 engines
0
5
10
15
20
time in ms — lower is better
silverfir-nano.interpreter
343.6 µs
silverfir-nano.interpreter — interpreter
343.6 µs
1.00× the fastest engine here
stitch
1.34 ms
stitch — interpreter
1.34 ms
3.91× the fastest engine here
wamr
1.59 ms
wamr — interpreter
1.59 ms
4.63× the fastest engine here
wasmi-v2.eager.checked
1.78 ms
wasmi-v2.eager.checked — interpreter
1.78 ms
5.19× the fastest engine here
wasmi-v0.32
1.86 ms
wasmi-v0.32 — interpreter
1.86 ms
5.40× the fastest engine here
wasmi-v1.eager.checked
1.98 ms
wasmi-v1.eager.checked — interpreter
1.98 ms
5.77× the fastest engine here
wasm3.eager
2.08 ms
wasm3.eager — interpreter
2.08 ms
6.04× the fastest engine here
wasmi-v0.31
3.00 ms
wasmi-v0.31 — interpreter
3.00 ms
8.72× the fastest engine here
wasmtime.pulley
3.45 ms
wasmtime.pulley — interpreter
3.45 ms
10.1× the fastest engine here
tinywasm
3.53 ms
tinywasm — interpreter
3.53 ms
10.3× the fastest engine here
fizzy
3.77 ms
fizzy — interpreter
3.77 ms
11.0× the fastest engine here
submilli-wasm
6.42 ms
submilli-wasm — interpreter
6.42 ms
18.7× the fastest engine here
spacewasm
8.42 ms
spacewasm — interpreter
8.42 ms
24.5× the fastest engine here
toywasm
16.01 ms
toywasm — interpreter
16.01 ms
46.6× the fastest engine here
wasmedge
17.94 ms
wasmedge — interpreter
17.94 ms
52.2× the fastest engine here
dlr-wasm-interpreter
18.77 ms
dlr-wasm-interpreter — interpreter
18.77 ms
54.6× the fastest engine here
execute/counter-paraminput 1000000
JIT 6 engines
0
0.5
1
1.5
time in ms — lower is better
wasmer.cranelift
247.6 µs
wasmer.cranelift — optimizing JIT
247.6 µs
1.00× the fastest engine here
wasmtime.cranelift
248.3 µs
wasmtime.cranelift — optimizing JIT
248.3 µs
1.00× the fastest engine here
silverfir-nano.jit
249.1 µs
silverfir-nano.jit — optimizing JIT
249.1 µs
1.01× the fastest engine here
v8
252.0 µs
v8 — multi-tier JIT
252.0 µs
1.02× the fastest engine here
wasmer.singlepass
823.0 µs
wasmer.singlepass — baseline JIT
823.0 µs
3.32× the fastest engine here
wasmtime.winch
1.29 ms
wasmtime.winch — baseline JIT
1.29 ms
5.21× the fastest engine here
Interpreter 14 engines
0
5
10
15
20
time in ms — lower is better
silverfir-nano.interpreter
343.5 µs
silverfir-nano.interpreter — interpreter
343.5 µs
1.00× the fastest engine here
wasmi-v2.eager.checked
1.25 ms
wasmi-v2.eager.checked — interpreter
1.25 ms
3.64× the fastest engine here
wamr
2.00 ms
wamr — interpreter
2.00 ms
5.83× the fastest engine here
wasm3.eager
2.24 ms
wasm3.eager — interpreter
2.24 ms
6.51× the fastest engine here
wasmi-v1.eager.checked
2.48 ms
wasmi-v1.eager.checked — interpreter
2.48 ms
7.22× the fastest engine here
tinywasm
2.75 ms
tinywasm — interpreter
2.75 ms
8.00× the fastest engine here
wasmi-v0.31
2.97 ms
wasmi-v0.31 — interpreter
2.97 ms
8.65× the fastest engine here
wasmi-v0.32
2.98 ms
wasmi-v0.32 — interpreter
2.98 ms
8.68× the fastest engine here
stitch
3.03 ms
stitch — interpreter
3.03 ms
8.81× the fastest engine here
wasmtime.pulley
3.45 ms
wasmtime.pulley — interpreter
3.45 ms
10.0× the fastest engine here
submilli-wasm
6.15 ms
submilli-wasm — interpreter
6.15 ms
17.9× the fastest engine here
toywasm
16.12 ms
toywasm — interpreter
16.12 ms
46.9× the fastest engine here
dlr-wasm-interpreter
17.87 ms
dlr-wasm-interpreter — interpreter
17.87 ms
52.0× the fastest engine here
wasmedge
18.67 ms
wasmedge — interpreter
18.67 ms
54.3× the fastest engine here
execute/fibonacci-iterinput 2000000
JIT 6 engines
0
1
2
3
time in ms — lower is better
wasmtime.cranelift
496.7 µs
wasmtime.cranelift — optimizing JIT
496.7 µs
1.00× the fastest engine here
silverfir-nano.jit
497.1 µs
silverfir-nano.jit — optimizing JIT
497.1 µs
1.00× the fastest engine here
wasmer.cranelift
497.1 µs
wasmer.cranelift — optimizing JIT
497.1 µs
1.00× the fastest engine here
v8
503.5 µs
v8 — multi-tier JIT
503.5 µs
1.01× the fastest engine here
wasmer.singlepass
1.00 ms
wasmer.singlepass — baseline JIT
1.00 ms
2.02× the fastest engine here
wasmtime.winch
2.81 ms
wasmtime.winch — baseline JIT
2.81 ms
5.65× the fastest engine here
Interpreter 16 engines
0
50
100
150
time in ms — lower is better
silverfir-nano.interpreter
2.44 ms
silverfir-nano.interpreter — interpreter
2.44 ms
1.00× the fastest engine here
wasmi-v2.eager.checked
4.13 ms
wasmi-v2.eager.checked — interpreter
4.13 ms
1.69× the fastest engine here
wasm3.eager
5.08 ms
wasm3.eager — interpreter
5.08 ms
2.08× the fastest engine here
wasmi-v0.32
5.19 ms
wasmi-v0.32 — interpreter
5.19 ms
2.13× the fastest engine here
wamr
5.31 ms
wamr — interpreter
5.31 ms
2.18× the fastest engine here
wasmi-v1.eager.checked
6.95 ms
wasmi-v1.eager.checked — interpreter
6.95 ms
2.85× the fastest engine here
stitch
12.86 ms
stitch — interpreter
12.86 ms
5.28× the fastest engine here
tinywasm
12.93 ms
tinywasm — interpreter
12.93 ms
5.31× the fastest engine here
wasmtime.pulley
13.43 ms
wasmtime.pulley — interpreter
13.43 ms
5.51× the fastest engine here
wasmi-v0.31
28.32 ms
wasmi-v0.31 — interpreter
28.32 ms
11.6× the fastest engine here
fizzy
36.91 ms
fizzy — interpreter
36.91 ms
15.1× the fastest engine here
submilli-wasm
46.75 ms
submilli-wasm — interpreter
46.75 ms
19.2× the fastest engine here
spacewasm
48.66 ms
spacewasm — interpreter
48.66 ms
20.0× the fastest engine here
toywasm
76.38 ms
toywasm — interpreter
76.38 ms
31.3× the fastest engine here
dlr-wasm-interpreter
103.18 ms
dlr-wasm-interpreter — interpreter
103.18 ms
42.3× the fastest engine here
wasmedge
103.83 ms
wasmedge — interpreter
103.83 ms
42.6× the fastest engine here
execute/fibonacci-recinput 30
JIT 6 engines
0
2.5
5
7.5
10
time in ms — lower is better
v8
1.49 ms
v8 — multi-tier JIT
1.49 ms
1.00× the fastest engine here
silverfir-nano.jit
1.82 ms
silverfir-nano.jit — optimizing JIT
1.82 ms
1.22× the fastest engine here
wasmer.cranelift
2.76 ms
wasmer.cranelift — optimizing JIT
2.76 ms
1.85× the fastest engine here
wasmtime.cranelift
2.80 ms
wasmtime.cranelift — optimizing JIT
2.80 ms
1.88× the fastest engine here
wasmer.singlepass
5.48 ms
wasmer.singlepass — baseline JIT
5.48 ms
3.67× the fastest engine here
wasmtime.winch
8.66 ms
wasmtime.winch — baseline JIT
8.66 ms
5.81× the fastest engine here
Interpreter 16 engines
0
50
100
150
time in ms — lower is better
silverfir-nano.interpreter
8.15 ms
silverfir-nano.interpreter — interpreter
8.15 ms
1.00× the fastest engine here
wasmi-v2.eager.checked
15.12 ms
wasmi-v2.eager.checked — interpreter
15.12 ms
1.86× the fastest engine here
stitch
16.43 ms
stitch — interpreter
16.43 ms
2.02× the fastest engine here
wamr
22.18 ms
wamr — interpreter
22.18 ms
2.72× the fastest engine here
wasm3.eager
24.15 ms
wasm3.eager — interpreter
24.15 ms
2.96× the fastest engine here
wasmi-v0.32
28.27 ms
wasmi-v0.32 — interpreter
28.27 ms
3.47× the fastest engine here
tinywasm
30.64 ms
tinywasm — interpreter
30.64 ms
3.76× the fastest engine here
wasmi-v0.31
32.65 ms
wasmi-v0.31 — interpreter
32.65 ms
4.01× the fastest engine here
wasmi-v1.eager.checked
32.93 ms
wasmi-v1.eager.checked — interpreter
32.93 ms
4.04× the fastest engine here
wasmtime.pulley
38.53 ms
wasmtime.pulley — interpreter
38.53 ms
4.73× the fastest engine here
fizzy
41.66 ms
fizzy — interpreter
41.66 ms
5.11× the fastest engine here
spacewasm
55.68 ms
spacewasm — interpreter
55.68 ms
6.84× the fastest engine here
submilli-wasm
92.72 ms
submilli-wasm — interpreter
92.72 ms
11.4× the fastest engine here
wasmedge
118.85 ms
wasmedge — interpreter
118.85 ms
14.6× the fastest engine here
dlr-wasm-interpreter
125.73 ms
dlr-wasm-interpreter — interpreter
125.73 ms
15.4× the fastest engine here
toywasm
149.18 ms
toywasm — interpreter
149.18 ms
18.3× the fastest engine here
execute/fibonacci-tailinput 1000000
JIT 3 engines
0
200
400
600
800
time in µs — lower is better
silverfir-nano.jit
251.7 µs
silverfir-nano.jit — optimizing JIT
251.7 µs
1.00× the fastest engine here
v8
299.0 µs
v8 — multi-tier JIT
299.0 µs
1.19× the fastest engine here
wasmtime.cranelift
650.0 µs
wasmtime.cranelift — optimizing JIT
650.0 µs
2.58× the fastest engine here
Interpreter 11 engines
0
20
40
60
time in ms — lower is better
silverfir-nano.interpreter
2.63 ms
silverfir-nano.interpreter — interpreter
2.63 ms
1.00× the fastest engine here
wasmi-v2.eager.checked
5.40 ms
wasmi-v2.eager.checked — interpreter
5.40 ms
2.05× the fastest engine here
tinywasm
9.65 ms
tinywasm — interpreter
9.65 ms
3.66× the fastest engine here
wasmi-v0.32
9.77 ms
wasmi-v0.32 — interpreter
9.77 ms
3.71× the fastest engine here
wasmi-v0.31
10.77 ms
wasmi-v0.31 — interpreter
10.77 ms
4.09× the fastest engine here
wasmtime.pulley
10.81 ms
wasmtime.pulley — interpreter
10.81 ms
4.11× the fastest engine here
wasmi-v1.eager.checked
11.23 ms
wasmi-v1.eager.checked — interpreter
11.23 ms
4.26× the fastest engine here
wamr
21.45 ms
wamr — interpreter
21.45 ms
8.15× the fastest engine here
submilli-wasm
30.62 ms
submilli-wasm — interpreter
30.62 ms
11.6× the fastest engine here
wasmedge
47.30 ms
wasmedge — interpreter
47.30 ms
18.0× the fastest engine here
toywasm
53.11 ms
toywasm — interpreter
53.11 ms
20.2× the fastest engine here
execute/json-parseinput 1727205
JIT 6 engines
0
2
4
6
8
time in ms — lower is better
silverfir-nano.jit
2.69 ms
silverfir-nano.jit — optimizing JIT
2.69 ms
1.00× the fastest engine here
v8
2.80 ms
v8 — multi-tier JIT
2.80 ms
1.04× the fastest engine here
wasmtime.cranelift
2.89 ms
wasmtime.cranelift — optimizing JIT
2.89 ms
1.07× the fastest engine here
wasmer.cranelift
3.05 ms
wasmer.cranelift — optimizing JIT
3.05 ms
1.13× the fastest engine here
wasmer.singlepass
6.00 ms
wasmer.singlepass — baseline JIT
6.00 ms
2.23× the fastest engine here
wasmtime.winch
7.64 ms
wasmtime.winch — baseline JIT
7.64 ms
2.84× the fastest engine here
Interpreter 16 engines
0
100
200
300
400
time in ms — lower is better
silverfir-nano.interpreter
19.87 ms
silverfir-nano.interpreter — interpreter
19.87 ms
1.00× the fastest engine here
wasm3.eager
29.96 ms
wasm3.eager — interpreter
29.96 ms
1.51× the fastest engine here
wasmi-v1.eager.checked
36.40 ms
wasmi-v1.eager.checked — interpreter
36.40 ms
1.83× the fastest engine here
wasmi-v2.eager.checked
40.51 ms
wasmi-v2.eager.checked — interpreter
40.51 ms
2.04× the fastest engine here
wasmi-v0.32
45.06 ms
wasmi-v0.32 — interpreter
45.06 ms
2.27× the fastest engine here
stitch
48.37 ms
stitch — interpreter
48.37 ms
2.43× the fastest engine here
wasmtime.pulley
55.22 ms
wasmtime.pulley — interpreter
55.22 ms
2.78× the fastest engine here
wamr
60.31 ms
wamr — interpreter
60.31 ms
3.03× the fastest engine here
fizzy
92.30 ms
fizzy — interpreter
92.30 ms
4.65× the fastest engine here
wasmi-v0.31
99.86 ms
wasmi-v0.31 — interpreter
99.86 ms
5.03× the fastest engine here
tinywasm
102.28 ms
tinywasm — interpreter
102.28 ms
5.15× the fastest engine here
spacewasm
167.77 ms
spacewasm — interpreter
167.77 ms
8.44× the fastest engine here
submilli-wasm
180.17 ms
submilli-wasm — interpreter
180.17 ms
9.07× the fastest engine here
toywasm
337.17 ms
toywasm — interpreter
337.17 ms
17.0× the fastest engine here
wasmedge
344.57 ms
wasmedge — interpreter
344.57 ms
17.3× the fastest engine here
dlr-wasm-interpreter
352.11 ms
dlr-wasm-interpreter — interpreter
352.11 ms
17.7× the fastest engine here
execute/mandelbrotinput 150
JIT 6 engines
0
200
400
600
time in ms — lower is better
silverfir-nano.jit
11.67 ms
silverfir-nano.jit — optimizing JIT
11.67 ms
1.00× the fastest engine here
wasmer.cranelift
11.75 ms
wasmer.cranelift — optimizing JIT
11.75 ms
1.01× the fastest engine here
v8
12.10 ms
v8 — multi-tier JIT
12.10 ms
1.04× the fastest engine here
wasmtime.cranelift
12.11 ms
wasmtime.cranelift — optimizing JIT
12.11 ms
1.04× the fastest engine here
wasmtime.winch
33.03 ms
wasmtime.winch — baseline JIT
33.03 ms
2.83× the fastest engine here
wasmer.singlepass
477.15 ms
wasmer.singlepass — baseline JIT
477.15 ms
40.9× the fastest engine here
Interpreter 16 engines
0
200
400
600
800
time in ms — lower is better
silverfir-nano.interpreter
36.71 ms
silverfir-nano.interpreter — interpreter
36.71 ms
1.00× the fastest engine here
wasm3.eager
43.44 ms
wasm3.eager — interpreter
43.44 ms
1.18× the fastest engine here
wasmi-v2.eager.checked
69.29 ms
wasmi-v2.eager.checked — interpreter
69.29 ms
1.89× the fastest engine here
stitch
80.55 ms
stitch — interpreter
80.55 ms
2.19× the fastest engine here
wamr
110.99 ms
wamr — interpreter
110.99 ms
3.02× the fastest engine here
wasmi-v1.eager.checked
111.98 ms
wasmi-v1.eager.checked — interpreter
111.98 ms
3.05× the fastest engine here
wasmi-v0.32
121.46 ms
wasmi-v0.32 — interpreter
121.46 ms
3.31× the fastest engine here
wasmtime.pulley
134.23 ms
wasmtime.pulley — interpreter
134.23 ms
3.66× the fastest engine here
fizzy
163.86 ms
fizzy — interpreter
163.86 ms
4.46× the fastest engine here
tinywasm
178.10 ms
tinywasm — interpreter
178.10 ms
4.85× the fastest engine here
wasmi-v0.31
193.00 ms
wasmi-v0.31 — interpreter
193.00 ms
5.26× the fastest engine here
submilli-wasm
278.53 ms
submilli-wasm — interpreter
278.53 ms
7.59× the fastest engine here
spacewasm
321.70 ms
spacewasm — interpreter
321.70 ms
8.76× the fastest engine here
toywasm
543.84 ms
toywasm — interpreter
543.84 ms
14.8× the fastest engine here
dlr-wasm-interpreter
584.76 ms
dlr-wasm-interpreter — interpreter
584.76 ms
15.9× the fastest engine here
wasmedge
634.31 ms
wasmedge — interpreter
634.31 ms
17.3× the fastest engine here
execute/matrix-mulinput 400
JIT 6 engines
0
200
400
600
time in ms — lower is better
silverfir-nano.jit
28.92 ms
silverfir-nano.jit — optimizing JIT
28.92 ms
1.00× the fastest engine here
wasmer.cranelift
30.84 ms
wasmer.cranelift — optimizing JIT
30.84 ms
1.07× the fastest engine here
wasmtime.cranelift
31.47 ms
wasmtime.cranelift — optimizing JIT
31.47 ms
1.09× the fastest engine here
v8
49.45 ms
v8 — multi-tier JIT
49.45 ms
1.71× the fastest engine here
wasmtime.winch
51.84 ms
wasmtime.winch — baseline JIT
51.84 ms
1.79× the fastest engine here
wasmer.singlepass
450.95 ms
wasmer.singlepass — baseline JIT
450.95 ms
15.6× the fastest engine here
Interpreter 16 engines
0
1000
2000
3000
4000
time in ms — lower is better
silverfir-nano.interpreter
223.99 ms
silverfir-nano.interpreter — interpreter
223.99 ms
1.00× the fastest engine here
wasmi-v2.eager.checked
231.29 ms
wasmi-v2.eager.checked — interpreter
231.29 ms
1.03× the fastest engine here
stitch
242.80 ms
stitch — interpreter
242.80 ms
1.08× the fastest engine here
wasm3.eager
298.48 ms
wasm3.eager — interpreter
298.48 ms
1.33× the fastest engine here
wamr
306.52 ms
wamr — interpreter
306.52 ms
1.37× the fastest engine here
wasmi-v1.eager.checked
369.42 ms
wasmi-v1.eager.checked — interpreter
369.42 ms
1.65× the fastest engine here
wasmi-v0.32
396.34 ms
wasmi-v0.32 — interpreter
396.34 ms
1.77× the fastest engine here
wasmi-v0.31
662.31 ms
wasmi-v0.31 — interpreter
662.31 ms
2.96× the fastest engine here
fizzy
915.94 ms
fizzy — interpreter
915.94 ms
4.09× the fastest engine here
wasmtime.pulley
1.06 s
wasmtime.pulley — interpreter
1.06 s
4.71× the fastest engine here
tinywasm
1.20 s
tinywasm — interpreter
1.20 s
5.34× the fastest engine here
spacewasm
2.01 s
spacewasm — interpreter
2.01 s
8.99× the fastest engine here
submilli-wasm
2.11 s
submilli-wasm — interpreter
2.11 s
9.40× the fastest engine here
toywasm
3.46 s
toywasm — interpreter
3.46 s
15.5× the fastest engine here
dlr-wasm-interpreter
3.70 s
dlr-wasm-interpreter — interpreter
3.70 s
16.5× the fastest engine here
wasmedge
3.90 s
wasmedge — interpreter
3.90 s
17.4× the fastest engine here
execute/nbodyinput 400
JIT 6 engines
0
200
400
600
time in ms — lower is better
silverfir-nano.jit
4.84 ms
silverfir-nano.jit — optimizing JIT
4.84 ms
1.00× the fastest engine here
wasmtime.cranelift
5.03 ms
wasmtime.cranelift — optimizing JIT
5.03 ms
1.04× the fastest engine here
wasmer.cranelift
5.04 ms
wasmer.cranelift — optimizing JIT
5.04 ms
1.04× the fastest engine here
v8
5.22 ms
v8 — multi-tier JIT
5.22 ms
1.08× the fastest engine here
wasmtime.winch
15.30 ms
wasmtime.winch — baseline JIT
15.30 ms
3.16× the fastest engine here
wasmer.singlepass
460.03 ms
wasmer.singlepass — baseline JIT
460.03 ms
95.1× the fastest engine here
Interpreter 16 engines
0
250
500
750
1000
time in ms — lower is better
silverfir-nano.interpreter
42.64 ms
silverfir-nano.interpreter — interpreter
42.64 ms
1.00× the fastest engine here
wasmi-v2.eager.checked
51.92 ms
wasmi-v2.eager.checked — interpreter
51.92 ms
1.22× the fastest engine here
wasm3.eager
61.65 ms
wasm3.eager — interpreter
61.65 ms
1.45× the fastest engine here
stitch
65.62 ms
stitch — interpreter
65.62 ms
1.54× the fastest engine here
wasmi-v1.eager.checked
99.92 ms
wasmi-v1.eager.checked — interpreter
99.92 ms
2.34× the fastest engine here
wamr
99.98 ms
wamr — interpreter
99.98 ms
2.34× the fastest engine here
wasmi-v0.32
117.70 ms
wasmi-v0.32 — interpreter
117.70 ms
2.76× the fastest engine here
wasmtime.pulley
207.12 ms
wasmtime.pulley — interpreter
207.12 ms
4.86× the fastest engine here
wasmi-v0.31
207.54 ms
wasmi-v0.31 — interpreter
207.54 ms
4.87× the fastest engine here
fizzy
216.78 ms
fizzy — interpreter
216.78 ms
5.08× the fastest engine here
tinywasm
285.25 ms
tinywasm — interpreter
285.25 ms
6.69× the fastest engine here
spacewasm
436.94 ms
spacewasm — interpreter
436.94 ms
10.2× the fastest engine here
submilli-wasm
520.77 ms
submilli-wasm — interpreter
520.77 ms
12.2× the fastest engine here
dlr-wasm-interpreter
737.50 ms
dlr-wasm-interpreter — interpreter
737.50 ms
17.3× the fastest engine here
wasmedge
841.79 ms
wasmedge — interpreter
841.79 ms
19.7× the fastest engine here
toywasm
959.56 ms
toywasm — interpreter
959.56 ms
22.5× the fastest engine here
execute/prime-sieveinput 10000000
JIT 6 engines
0
10
20
30
40
time in ms — lower is better
wasmer.cranelift
16.30 ms
wasmer.cranelift — optimizing JIT
16.30 ms
1.00× the fastest engine here
silverfir-nano.jit
16.39 ms
silverfir-nano.jit — optimizing JIT
16.39 ms
1.01× the fastest engine here
wasmtime.cranelift
16.86 ms
wasmtime.cranelift — optimizing JIT
16.86 ms
1.03× the fastest engine here
wasmer.singlepass
25.00 ms
wasmer.singlepass — baseline JIT
25.00 ms
1.53× the fastest engine here
wasmtime.winch
25.09 ms
wasmtime.winch — baseline JIT
25.09 ms
1.54× the fastest engine here
v8
38.99 ms
v8 — multi-tier JIT
38.99 ms
2.39× the fastest engine here
Interpreter 16 engines
0
1000
2000
3000
time in ms — lower is better
silverfir-nano.interpreter
60.03 ms
silverfir-nano.interpreter — interpreter
60.03 ms
1.00× the fastest engine here
wasmi-v2.eager.checked
114.90 ms
wasmi-v2.eager.checked — interpreter
114.90 ms
1.91× the fastest engine here
wasm3.eager
120.31 ms
wasm3.eager — interpreter
120.31 ms
2.00× the fastest engine here
wasmi-v1.eager.checked
147.66 ms
wasmi-v1.eager.checked — interpreter
147.66 ms
2.46× the fastest engine here
wasmi-v0.32
156.64 ms
wasmi-v0.32 — interpreter
156.64 ms
2.61× the fastest engine here
wamr
161.27 ms
wamr — interpreter
161.27 ms
2.69× the fastest engine here
wasmtime.pulley
176.59 ms
wasmtime.pulley — interpreter
176.59 ms
2.94× the fastest engine here
stitch
188.09 ms
stitch — interpreter
188.09 ms
3.13× the fastest engine here
wasmi-v0.31
411.05 ms
wasmi-v0.31 — interpreter
411.05 ms
6.85× the fastest engine here
tinywasm
544.65 ms
tinywasm — interpreter
544.65 ms
9.07× the fastest engine here
fizzy
590.42 ms
fizzy — interpreter
590.42 ms
9.84× the fastest engine here
spacewasm
832.45 ms
spacewasm — interpreter
832.45 ms
13.9× the fastest engine here
submilli-wasm
950.40 ms
submilli-wasm — interpreter
950.40 ms
15.8× the fastest engine here
toywasm
1.41 s
toywasm — interpreter
1.41 s
23.5× the fastest engine here
dlr-wasm-interpreter
1.57 s
dlr-wasm-interpreter — interpreter
1.57 s
26.2× the fastest engine here
wasmedge
2.18 s
wasmedge — interpreter
2.18 s
36.3× the fastest engine here
execute/regex-reduxinput 10245
JIT 6 engines
0
10
20
30
40
time in µs — lower is better
silverfir-nano.jit
17.9 µs
silverfir-nano.jit — optimizing JIT
17.9 µs
1.00× the fastest engine here
wasmer.cranelift
18.0 µs
wasmer.cranelift — optimizing JIT
18.0 µs
1.01× the fastest engine here
v8
18.2 µs
v8 — multi-tier JIT
18.2 µs
1.02× the fastest engine here
wasmtime.cranelift
29.1 µs
wasmtime.cranelift — optimizing JIT
29.1 µs
1.62× the fastest engine here
wasmer.singlepass
30.5 µs
wasmer.singlepass — baseline JIT
30.5 µs
1.70× the fastest engine here
wasmtime.winch
35.9 µs
wasmtime.winch — baseline JIT
35.9 µs
2.00× the fastest engine here
Interpreter 16 engines
0
0.5
1
1.5
2
time in ms — lower is better
silverfir-nano.interpreter
67.7 µs
silverfir-nano.interpreter — interpreter
67.7 µs
1.00× the fastest engine here
wasm3.eager
106.9 µs
wasm3.eager — interpreter
106.9 µs
1.58× the fastest engine here
wasmi-v1.eager.checked
144.1 µs
wasmi-v1.eager.checked — interpreter
144.1 µs
2.13× the fastest engine here
wamr
159.7 µs
wamr — interpreter
159.7 µs
2.36× the fastest engine here
wasmi-v2.eager.checked
180.3 µs
wasmi-v2.eager.checked — interpreter
180.3 µs
2.66× the fastest engine here
wasmtime.pulley
235.5 µs
wasmtime.pulley — interpreter
235.5 µs
3.48× the fastest engine here
stitch
247.1 µs
stitch — interpreter
247.1 µs
3.65× the fastest engine here
fizzy
306.1 µs
fizzy — interpreter
306.1 µs
4.52× the fastest engine here
wasmi-v0.32
397.2 µs
wasmi-v0.32 — interpreter
397.2 µs
5.87× the fastest engine here
wasmi-v0.31
624.1 µs
wasmi-v0.31 — interpreter
624.1 µs
9.22× the fastest engine here
tinywasm
668.5 µs
tinywasm — interpreter
668.5 µs
9.88× the fastest engine here
submilli-wasm
735.0 µs
submilli-wasm — interpreter
735.0 µs
10.9× the fastest engine here
spacewasm
759.1 µs
spacewasm — interpreter
759.1 µs
11.2× the fastest engine here
toywasm
1.72 ms
toywasm — interpreter
1.72 ms
25.3× the fastest engine here
wasmedge
1.75 ms
wasmedge — interpreter
1.75 ms
25.9× the fastest engine here
dlr-wasm-interpreter
1.79 ms
dlr-wasm-interpreter — interpreter
1.79 ms
26.4× the fastest engine here
execute/reverse-complementinput 10245
JIT 6 engines
0
10
20
30
40
time in µs — lower is better
silverfir-nano.jit
6.9 µs
silverfir-nano.jit — optimizing JIT
6.9 µs
1.00× the fastest engine here
v8
14.0 µs
v8 — multi-tier JIT
14.0 µs
2.04× the fastest engine here
wasmer.cranelift
16.4 µs
wasmer.cranelift — optimizing JIT
16.4 µs
2.40× the fastest engine here
wasmtime.cranelift
16.6 µs
wasmtime.cranelift — optimizing JIT
16.6 µs
2.41× the fastest engine here
wasmer.singlepass
33.9 µs
wasmer.singlepass — baseline JIT
33.9 µs
4.95× the fastest engine here
wasmtime.winch
38.0 µs
wasmtime.winch — baseline JIT
38.0 µs
5.54× the fastest engine here
Interpreter 16 engines
0
1
2
3
time in ms — lower is better
silverfir-nano.interpreter
93.6 µs
silverfir-nano.interpreter — interpreter
93.6 µs
1.00× the fastest engine here
wamr
171.4 µs
wamr — interpreter
171.4 µs
1.83× the fastest engine here
wasm3.eager
188.9 µs
wasm3.eager — interpreter
188.9 µs
2.02× the fastest engine here
wasmi-v1.eager.checked
210.9 µs
wasmi-v1.eager.checked — interpreter
210.9 µs
2.25× the fastest engine here
wasmi-v2.eager.checked
221.9 µs
wasmi-v2.eager.checked — interpreter
221.9 µs
2.37× the fastest engine here
stitch
230.0 µs
stitch — interpreter
230.0 µs
2.46× the fastest engine here
wasmi-v0.32
280.5 µs
wasmi-v0.32 — interpreter
280.5 µs
3.00× the fastest engine here
wasmtime.pulley
422.6 µs
wasmtime.pulley — interpreter
422.6 µs
4.52× the fastest engine here
wasmi-v0.31
588.3 µs
wasmi-v0.31 — interpreter
588.3 µs
6.29× the fastest engine here
tinywasm
679.0 µs
tinywasm — interpreter
679.0 µs
7.25× the fastest engine here
fizzy
682.2 µs
fizzy — interpreter
682.2 µs
7.29× the fastest engine here
spacewasm
1.15 ms
spacewasm — interpreter
1.15 ms
12.3× the fastest engine here
submilli-wasm
1.16 ms
submilli-wasm — interpreter
1.16 ms
12.4× the fastest engine here
toywasm
2.08 ms
toywasm — interpreter
2.08 ms
22.2× the fastest engine here
dlr-wasm-interpreter
2.33 ms
dlr-wasm-interpreter — interpreter
2.33 ms
24.9× the fastest engine here
wasmedge
2.56 ms
wasmedge — interpreter
2.56 ms
27.4× the fastest engine here
execute/sort-dyninput 400000
JIT 6 engines
0
20
40
60
80
time in ms — lower is better
v8
17.19 ms
v8 — multi-tier JIT
17.19 ms
1.00× the fastest engine here
wasmer.cranelift
17.48 ms
wasmer.cranelift — optimizing JIT
17.48 ms
1.02× the fastest engine here
wasmtime.cranelift
19.64 ms
wasmtime.cranelift — optimizing JIT
19.64 ms
1.14× the fastest engine here
silverfir-nano.jit
19.92 ms
silverfir-nano.jit — optimizing JIT
19.92 ms
1.16× the fastest engine here
wasmtime.winch
60.19 ms
wasmtime.winch — baseline JIT
60.19 ms
3.50× the fastest engine here
wasmer.singlepass
64.20 ms
wasmer.singlepass — baseline JIT
64.20 ms
3.73× the fastest engine here
Interpreter 16 engines
0
1000
2000
3000
time in ms — lower is better
silverfir-nano.interpreter
105.22 ms
silverfir-nano.interpreter — interpreter
105.22 ms
1.00× the fastest engine here
wasm3.eager
168.34 ms
wasm3.eager — interpreter
168.34 ms
1.60× the fastest engine here
wasmi-v2.eager.checked
188.31 ms
wasmi-v2.eager.checked — interpreter
188.31 ms
1.79× the fastest engine here
stitch
189.94 ms
stitch — interpreter
189.94 ms
1.81× the fastest engine here
wamr
254.28 ms
wamr — interpreter
254.28 ms
2.42× the fastest engine here
wasmi-v1.eager.checked
305.03 ms
wasmi-v1.eager.checked — interpreter
305.03 ms
2.90× the fastest engine here
wasmi-v0.32
314.84 ms
wasmi-v0.32 — interpreter
314.84 ms
2.99× the fastest engine here
wasmi-v0.31
435.21 ms
wasmi-v0.31 — interpreter
435.21 ms
4.14× the fastest engine here
wasmtime.pulley
503.00 ms
wasmtime.pulley — interpreter
503.00 ms
4.78× the fastest engine here
fizzy
527.26 ms
fizzy — interpreter
527.26 ms
5.01× the fastest engine here
tinywasm
837.55 ms
tinywasm — interpreter
837.55 ms
7.96× the fastest engine here
spacewasm
920.46 ms
spacewasm — interpreter
920.46 ms
8.75× the fastest engine here
submilli-wasm
1.34 s
submilli-wasm — interpreter
1.34 s
12.7× the fastest engine here
dlr-wasm-interpreter
1.90 s
dlr-wasm-interpreter — interpreter
1.90 s
18.1× the fastest engine here
toywasm
2.13 s
toywasm — interpreter
2.13 s
20.2× the fastest engine here
wasmedge
2.35 s
wasmedge — interpreter
2.35 s
22.3× the fastest engine here
execute/sortinput 1000000
JIT 6 engines
0
20
40
60
time in ms — lower is better
silverfir-nano.jit
11.43 ms
silverfir-nano.jit — optimizing JIT
11.43 ms
1.00× the fastest engine here
wasmtime.cranelift
17.93 ms
wasmtime.cranelift — optimizing JIT
17.93 ms
1.57× the fastest engine here
wasmer.cranelift
18.99 ms
wasmer.cranelift — optimizing JIT
18.99 ms
1.66× the fastest engine here
v8
27.71 ms
v8 — multi-tier JIT
27.71 ms
2.42× the fastest engine here
wasmtime.winch
52.10 ms
wasmtime.winch — baseline JIT
52.10 ms
4.56× the fastest engine here
wasmer.singlepass
53.06 ms
wasmer.singlepass — baseline JIT
53.06 ms
4.64× the fastest engine here
Interpreter 16 engines
0
1000
2000
3000
4000
time in ms — lower is better
silverfir-nano.interpreter
151.85 ms
silverfir-nano.interpreter — interpreter
151.85 ms
1.00× the fastest engine here
wasm3.eager
172.42 ms
wasm3.eager — interpreter
172.42 ms
1.14× the fastest engine here
wasmi-v2.eager.checked
189.67 ms
wasmi-v2.eager.checked — interpreter
189.67 ms
1.25× the fastest engine here
stitch
215.82 ms
stitch — interpreter
215.82 ms
1.42× the fastest engine here
wamr
256.82 ms
wamr — interpreter
256.82 ms
1.69× the fastest engine here
wasmi-v1.eager.checked
260.75 ms
wasmi-v1.eager.checked — interpreter
260.75 ms
1.72× the fastest engine here
wasmtime.pulley
325.88 ms
wasmtime.pulley — interpreter
325.88 ms
2.15× the fastest engine here
wasmi-v0.32
372.81 ms
wasmi-v0.32 — interpreter
372.81 ms
2.46× the fastest engine here
wasmi-v0.31
547.27 ms
wasmi-v0.31 — interpreter
547.27 ms
3.60× the fastest engine here
fizzy
767.29 ms
fizzy — interpreter
767.29 ms
5.05× the fastest engine here
tinywasm
1.01 s
tinywasm — interpreter
1.01 s
6.62× the fastest engine here
spacewasm
1.34 s
spacewasm — interpreter
1.34 s
8.83× the fastest engine here
submilli-wasm
1.73 s
submilli-wasm — interpreter
1.73 s
11.4× the fastest engine here
dlr-wasm-interpreter
2.56 s
dlr-wasm-interpreter — interpreter
2.56 s
16.9× the fastest engine here
toywasm
2.76 s
toywasm — interpreter
2.76 s
18.2× the fastest engine here
wasmedge
3.17 s
wasmedge — interpreter
3.17 s
20.9× the fastest engine here
execute/spectralnorminput 500
JIT 6 engines
0
100
200
300
time in ms — lower is better
wasmtime.cranelift
5.67 ms
wasmtime.cranelift — optimizing JIT
5.67 ms
1.00× the fastest engine here
wasmer.cranelift
5.73 ms
wasmer.cranelift — optimizing JIT
5.73 ms
1.01× the fastest engine here
silverfir-nano.jit
6.03 ms
silverfir-nano.jit — optimizing JIT
6.03 ms
1.06× the fastest engine here
v8
6.68 ms
v8 — multi-tier JIT
6.68 ms
1.18× the fastest engine here
wasmtime.winch
24.39 ms
wasmtime.winch — baseline JIT
24.39 ms
4.30× the fastest engine here
wasmer.singlepass
260.19 ms
wasmer.singlepass — baseline JIT
260.19 ms
45.9× the fastest engine here
Interpreter 16 engines
0
500
1000
1500
time in ms — lower is better
silverfir-nano.interpreter
51.85 ms
silverfir-nano.interpreter — interpreter
51.85 ms
1.00× the fastest engine here
wasm3.eager
78.52 ms
wasm3.eager — interpreter
78.52 ms
1.51× the fastest engine here
wamr
85.84 ms
wamr — interpreter
85.84 ms
1.66× the fastest engine here
stitch
133.46 ms
stitch — interpreter
133.46 ms
2.57× the fastest engine here
wasmi-v0.32
136.85 ms
wasmi-v0.32 — interpreter
136.85 ms
2.64× the fastest engine here
wasmi-v2.eager.checked
145.00 ms
wasmi-v2.eager.checked — interpreter
145.00 ms
2.80× the fastest engine here
wasmi-v1.eager.checked
166.03 ms
wasmi-v1.eager.checked — interpreter
166.03 ms
3.20× the fastest engine here
wasmi-v0.31
245.48 ms
wasmi-v0.31 — interpreter
245.48 ms
4.73× the fastest engine here
tinywasm
290.43 ms
tinywasm — interpreter
290.43 ms
5.60× the fastest engine here
wasmtime.pulley
325.87 ms
wasmtime.pulley — interpreter
325.87 ms
6.29× the fastest engine here
fizzy
414.63 ms
fizzy — interpreter
414.63 ms
8.00× the fastest engine here
spacewasm
693.71 ms
spacewasm — interpreter
693.71 ms
13.4× the fastest engine here
submilli-wasm
742.03 ms
submilli-wasm — interpreter
742.03 ms
14.3× the fastest engine here
toywasm
1.27 s
toywasm — interpreter
1.27 s
24.5× the fastest engine here
dlr-wasm-interpreter
1.40 s
dlr-wasm-interpreter — interpreter
1.40 s
27.0× the fastest engine here
wasmedge
1.47 s
wasmedge — interpreter
1.47 s
28.4× the fastest engine here
execute/tiny-keccak
JIT 6 engines
0
10
20
30
time in µs — lower is better
v8
6.6 µs
v8 — multi-tier JIT
6.6 µs
1.00× the fastest engine here
silverfir-nano.jit
6.8 µs
silverfir-nano.jit — optimizing JIT
6.8 µs
1.03× the fastest engine here
wasmer.cranelift
9.1 µs
wasmer.cranelift — optimizing JIT
9.1 µs
1.38× the fastest engine here
wasmtime.cranelift
11.5 µs
wasmtime.cranelift — optimizing JIT
11.5 µs
1.75× the fastest engine here
wasmer.singlepass
18.7 µs
wasmer.singlepass — baseline JIT
18.7 µs
2.84× the fastest engine here
wasmtime.winch
22.1 µs
wasmtime.winch — baseline JIT
22.1 µs
3.36× the fastest engine here
Interpreter 16 engines
0
0.5
1
1.5
2
time in ms — lower is better
silverfir-nano.interpreter
46.1 µs
silverfir-nano.interpreter — interpreter
46.1 µs
1.00× the fastest engine here
wasmi-v2.eager.checked
64.4 µs
wasmi-v2.eager.checked — interpreter
64.4 µs
1.40× the fastest engine here
stitch
72.3 µs
stitch — interpreter
72.3 µs
1.57× the fastest engine here
wasm3.eager
75.8 µs
wasm3.eager — interpreter
75.8 µs
1.64× the fastest engine here
wamr
110.1 µs
wamr — interpreter
110.1 µs
2.39× the fastest engine here
wasmi-v0.32
162.0 µs
wasmi-v0.32 — interpreter
162.0 µs
3.51× the fastest engine here
wasmi-v1.eager.checked
177.9 µs
wasmi-v1.eager.checked — interpreter
177.9 µs
3.86× the fastest engine here
wasmtime.pulley
239.1 µs
wasmtime.pulley — interpreter
239.1 µs
5.19× the fastest engine here
wasmi-v0.31
277.7 µs
wasmi-v0.31 — interpreter
277.7 µs
6.02× the fastest engine here
fizzy
354.6 µs
fizzy — interpreter
354.6 µs
7.69× the fastest engine here
tinywasm
606.4 µs
tinywasm — interpreter
606.4 µs
13.2× the fastest engine here
spacewasm
697.2 µs
spacewasm — interpreter
697.2 µs
15.1× the fastest engine here
submilli-wasm
701.5 µs
submilli-wasm — interpreter
701.5 µs
15.2× the fastest engine here
toywasm
1.40 ms
toywasm — interpreter
1.40 ms
30.3× the fastest engine here
wasmedge
1.63 ms
wasmedge — interpreter
1.63 ms
35.4× the fastest engine here
dlr-wasm-interpreter
2.00 ms
dlr-wasm-interpreter — interpreter
2.00 ms
43.3× the fastest engine here
execute/word-countinput 152089
JIT 6 engines
0
0.5
1
1.5
time in ms — lower is better
v8
423.3 µs
v8 — multi-tier JIT
423.3 µs
1.00× the fastest engine here
wasmtime.cranelift
451.6 µs
wasmtime.cranelift — optimizing JIT
451.6 µs
1.07× the fastest engine here
wasmer.cranelift
452.5 µs
wasmer.cranelift — optimizing JIT
452.5 µs
1.07× the fastest engine here
silverfir-nano.jit
459.2 µs
silverfir-nano.jit — optimizing JIT
459.2 µs
1.08× the fastest engine here
wasmtime.winch
1.02 ms
wasmtime.winch — baseline JIT
1.02 ms
2.42× the fastest engine here
wasmer.singlepass
1.05 ms
wasmer.singlepass — baseline JIT
1.05 ms
2.48× the fastest engine here
Interpreter 16 engines
0
20
40
60
time in ms — lower is better
silverfir-nano.interpreter
3.08 ms
silverfir-nano.interpreter — interpreter
3.08 ms
1.00× the fastest engine here
wasm3.eager
4.04 ms
wasm3.eager — interpreter
4.04 ms
1.31× the fastest engine here
wasmi-v1.eager.checked
5.65 ms
wasmi-v1.eager.checked — interpreter
5.65 ms
1.84× the fastest engine here
wamr
5.68 ms
wamr — interpreter
5.68 ms
1.84× the fastest engine here
wasmi-v2.eager.checked
5.98 ms
wasmi-v2.eager.checked — interpreter
5.98 ms
1.94× the fastest engine here
wasmi-v0.32
7.21 ms
wasmi-v0.32 — interpreter
7.21 ms
2.34× the fastest engine here
wasmtime.pulley
7.70 ms
wasmtime.pulley — interpreter
7.70 ms
2.50× the fastest engine here
stitch
8.85 ms
stitch — interpreter
8.85 ms
2.88× the fastest engine here
fizzy
13.65 ms
fizzy — interpreter
13.65 ms
4.44× the fastest engine here
wasmi-v0.31
13.68 ms
wasmi-v0.31 — interpreter
13.68 ms
4.45× the fastest engine here
tinywasm
16.32 ms
tinywasm — interpreter
16.32 ms
5.30× the fastest engine here
spacewasm
26.11 ms
spacewasm — interpreter
26.11 ms
8.49× the fastest engine here
submilli-wasm
26.83 ms
submilli-wasm — interpreter
26.83 ms
8.72× the fastest engine here
toywasm
48.07 ms
toywasm — interpreter
48.07 ms
15.6× the fastest engine here
dlr-wasm-interpreter
51.69 ms
dlr-wasm-interpreter — interpreter
51.69 ms
16.8× the fastest engine here
wasmedge
53.90 ms
wasmedge — interpreter
53.90 ms
17.5× the fastest engine here
Execution benchmarks — full table of measured times Engine argon2 bulk-ops compression counter-global counter-local counter-param fibonacci-iter fibonacci-rec fibonacci-tail json-parse mandelbrot matrix-mul nbody prime-sieve regex-redux reverse-complement sort-dyn sort spectralnorm tiny-keccak word-count dlr-wasm-interpreter 2.50 s 764.0 µs 358.13 ms 11.05 ms 18.77 ms 17.87 ms 103.18 ms 125.73 ms — 352.11 ms 584.76 ms 3.70 s 737.50 ms 1.57 s 1.79 ms 2.33 ms 1.90 s 2.56 s 1.40 s 2.00 ms 51.69 ms fizzy 758.14 ms — 85.27 ms 1.99 ms 3.77 ms — 36.91 ms 41.66 ms — 92.30 ms 163.86 ms 915.94 ms 216.78 ms 590.42 ms 306.1 µs 682.2 µs 527.26 ms 767.29 ms 414.63 ms 354.6 µs 13.65 ms silverfir-nano.interpreter 106.88 ms 378.0 µs 16.00 ms 652.8 µs 343.6 µs 343.5 µs 2.44 ms 8.15 ms 2.63 ms 19.87 ms 36.71 ms 223.99 ms 42.64 ms 60.03 ms 67.7 µs 93.6 µs 105.22 ms 151.85 ms 51.85 ms 46.1 µs 3.08 ms silverfir-nano.jit 5.13 ms 437.5 µs 4.56 ms 427.8 µs 248.8 µs 249.1 µs 497.1 µs 1.82 ms 251.7 µs 2.69 ms 11.67 ms 28.92 ms 4.84 ms 16.39 ms 17.9 µs 6.9 µs 19.92 ms 11.43 ms 6.03 ms 6.8 µs 459.2 µs spacewasm 1.44 s — 163.40 ms 5.80 ms 8.42 ms — 48.66 ms 55.68 ms — 167.77 ms 321.70 ms 2.01 s 436.94 ms 832.45 ms 759.1 µs 1.15 ms 920.46 ms 1.34 s 693.71 ms 697.2 µs 26.11 ms stitch 250.67 ms 466.9 µs 41.93 ms 3.44 ms 1.34 ms 3.03 ms 12.86 ms 16.43 ms — 48.37 ms 80.55 ms 242.80 ms 65.62 ms 188.09 ms 247.1 µs 230.0 µs 189.94 ms 215.82 ms 133.46 ms 72.3 µs 8.85 ms submilli-wasm 1.38 s 610.2 µs 171.21 ms 7.89 ms 6.42 ms 6.15 ms 46.75 ms 92.72 ms 30.62 ms 180.17 ms 278.53 ms 2.11 s 520.77 ms 950.40 ms 735.0 µs 1.16 ms 1.34 s 1.73 s 742.03 ms 701.5 µs 26.83 ms tinywasm 754.25 ms 571.1 µs 110.86 ms 4.95 ms 3.53 ms 2.75 ms 12.93 ms 30.64 ms 9.65 ms 102.28 ms 178.10 ms 1.20 s 285.25 ms 544.65 ms 668.5 µs 679.0 µs 837.55 ms 1.01 s 290.43 ms 606.4 µs 16.32 ms toywasm 2.24 s 772.1 µs 303.01 ms 10.87 ms 16.01 ms 16.12 ms 76.38 ms 149.18 ms 53.11 ms 337.17 ms 543.84 ms 3.46 s 959.56 ms 1.41 s 1.72 ms 2.08 ms 2.13 s 2.76 s 1.27 s 1.40 ms 48.07 ms v8 16.74 ms 453.3 µs 4.96 ms 277.0 µs 252.2 µs 252.0 µs 503.5 µs 1.49 ms 299.0 µs 2.80 ms 12.10 ms 49.45 ms 5.22 ms 38.99 ms 18.2 µs 14.0 µs 17.19 ms 27.71 ms 6.68 ms 6.6 µs 423.3 µs wamr 207.97 ms 484.3 µs 36.53 ms 1.80 ms 1.59 ms 2.00 ms 5.31 ms 22.18 ms 21.45 ms 60.31 ms 110.99 ms 306.52 ms 99.98 ms 161.27 ms 159.7 µs 171.4 µs 254.28 ms 256.82 ms 85.84 ms 110.1 µs 5.68 ms wasm3.eager 157.03 ms 460.4 µs 22.48 ms 1.28 ms 2.08 ms 2.24 ms 5.08 ms 24.15 ms — 29.96 ms 43.44 ms 298.48 ms 61.65 ms 120.31 ms 106.9 µs 188.9 µs 168.34 ms 172.42 ms 78.52 ms 75.8 µs 4.04 ms wasmedge 2.72 s 798.3 µs 346.36 ms 11.16 ms 17.94 ms 18.67 ms 103.83 ms 118.85 ms 47.30 ms 344.57 ms 634.31 ms 3.90 s 841.79 ms 2.18 s 1.75 ms 2.56 ms 2.35 s 3.17 s 1.47 s 1.63 ms 53.90 ms wasmer.cranelift 20.15 ms 446.9 µs 4.74 ms 451.9 µs 248.3 µs 247.6 µs 497.1 µs 2.76 ms — 3.05 ms 11.75 ms 30.84 ms 5.04 ms 16.30 ms 18.0 µs 16.4 µs 17.48 ms 18.99 ms 5.73 ms 9.1 µs 452.5 µs wasmer.singlepass 31.26 ms 460.8 µs 7.25 ms 904.4 µs 499.5 µs 823.0 µs 1.00 ms 5.48 ms — 6.00 ms 477.15 ms 450.95 ms 460.03 ms 25.00 ms 30.5 µs 33.9 µs 64.20 ms 53.06 ms 260.19 ms 18.7 µs 1.05 ms wasmi-v0.31 633.21 ms 544.6 µs 101.45 ms 2.24 ms 3.00 ms 2.97 ms 28.32 ms 32.65 ms 10.77 ms 99.86 ms 193.00 ms 662.31 ms 207.54 ms 411.05 ms 624.1 µs 588.3 µs 435.21 ms 547.27 ms 245.48 ms 277.7 µs 13.68 ms wasmi-v0.32 280.75 ms 452.2 µs 37.43 ms 1.99 ms 1.86 ms 2.98 ms 5.19 ms 28.27 ms 9.77 ms 45.06 ms 121.46 ms 396.34 ms 117.70 ms 156.64 ms 397.2 µs 280.5 µs 314.84 ms 372.81 ms 136.85 ms 162.0 µs 7.21 ms wasmi-v1.eager.checked 235.75 ms 471.1 µs 30.55 ms 1.74 ms 1.98 ms 2.48 ms 6.95 ms 32.93 ms 11.23 ms 36.40 ms 111.98 ms 369.42 ms 99.92 ms 147.66 ms 144.1 µs 210.9 µs 305.03 ms 260.75 ms 166.03 ms 177.9 µs 5.65 ms wasmi-v2.eager.checked 260.54 ms 482.4 µs 37.62 ms 1.04 ms 1.78 ms 1.25 ms 4.13 ms 15.12 ms 5.40 ms 40.51 ms 69.29 ms 231.29 ms 51.92 ms 114.90 ms 180.3 µs 221.9 µs 188.31 ms 189.67 ms 145.00 ms 64.4 µs 5.98 ms wasmtime.cranelift 19.96 ms 457.1 µs 4.74 ms 447.3 µs 248.1 µs 248.3 µs 496.7 µs 2.80 ms 650.0 µs 2.89 ms 12.11 ms 31.47 ms 5.03 ms 16.86 ms 29.1 µs 16.6 µs 19.64 ms 17.93 ms 5.67 ms 11.5 µs 451.6 µs wasmtime.pulley 284.16 ms 749.9 µs 51.70 ms 2.00 ms 3.45 ms 3.45 ms 13.43 ms 38.53 ms 10.81 ms 55.22 ms 134.23 ms 1.06 s 207.12 ms 176.59 ms 235.5 µs 422.6 µs 503.00 ms 325.88 ms 325.87 ms 239.1 µs 7.70 ms wasmtime.winch 43.45 ms 463.2 µs 6.68 ms 524.2 µs 768.3 µs 1.29 ms 2.81 ms 8.66 ms — 7.64 ms 33.03 ms 51.84 ms 15.30 ms 25.09 ms 35.9 µs 38.0 µs 60.19 ms 52.10 ms 24.39 ms 22.1 µs 1.02 ms
Startup — by engine class
The startup benchmarks time rt.instantiate(&wasm): parsing, validation, compilation, linking and instantiation all count. Silverfir-nano runs with parallel compilation disabled, so these are serial numbers. Interpreters have a structural advantage here — they emit little or no machine code — so each class gets its own chart and its own baseline, as above.
JIT startup speed Geometric mean over the 6 startup cases every JIT ran
Silverfir-nano v8 wasmtime.cranelift Other engines
0×
20×
40×
60×
× v8 — lower is better
v8 multi-tier JIT
1.00×
v8 — multi-tier JIT
class leader, fastest on 4 of 6 cases
wasmer.singlepass baseline JIT
4.34×
wasmer.singlepass — baseline JIT
4.34× the time of v8, geomean over 6 cases
fastest on 2 of them
wasmtime.winch baseline JIT
7.60×
wasmtime.winch — baseline JIT
7.60× the time of v8, geomean over 6 cases
fastest on 0 of them
silverfir-nano.jit optimizing JIT
31.5×
silverfir-nano.jit — optimizing JIT
31.5× the time of v8, geomean over 6 cases
fastest on 0 of them
wasmtime.cranelift optimizing JIT
45.4×
wasmtime.cranelift — optimizing JIT
45.4× the time of v8, geomean over 6 cases
fastest on 0 of them
wasmer.cranelift optimizing JIT
45.5×
wasmer.cranelift — optimizing JIT
45.5× the time of v8, geomean over 6 cases
fastest on 0 of them
V8 leads because it compiles lazily, not because it compiles the same functions faster than the others.
Interpreter startup speed Geometric mean over the 6 startup cases every interpreter ran
Silverfir-nano wasmi-v2.eager.checked wasm3.eager Other engines
0×
10×
20×
30×
40×
× wasmi-v1.lazy.unchecked — lower is better
wasmi-v1.lazy.unchecked
1.00×
wasmi-v1.lazy.unchecked — interpreter
class leader, fastest on 2 of 6 cases
wasm3.lazy
1.00×
wasm3.lazy — interpreter
1.00× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 3 of them
wasmi-v2.lazy.unchecked
1.08×
wasmi-v2.lazy.unchecked — interpreter
1.08× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 1 of them
wasmi-v1.lazy.checked
1.09×
wasmi-v1.lazy.checked — interpreter
1.09× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v2.lazy.checked
1.40×
wasmi-v2.lazy.checked — interpreter
1.40× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v2.lazy-translation.checked
5.84×
wasmi-v2.lazy-translation.checked — interpreter
5.84× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
dlr-wasm-interpreter
6.24×
dlr-wasm-interpreter — interpreter
6.24× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
stitch
7.07×
stitch — interpreter
7.07× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v1.lazy-translation.checked
7.59×
wasmi-v1.lazy-translation.checked — interpreter
7.59× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v0.31
7.93×
wasmi-v0.31 — interpreter
7.93× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
submilli-wasm
10.1×
submilli-wasm — interpreter
10.1× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
toywasm
10.8×
toywasm — interpreter
10.8× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v0.32
11.5×
wasmi-v0.32 — interpreter
11.5× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
fizzy
11.9×
fizzy — interpreter
11.9× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v1.eager.checked
14.0×
wasmi-v1.eager.checked — interpreter
14.0× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmi-v2.eager.checked
19.1×
wasmi-v2.eager.checked — interpreter
19.1× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
spacewasm
19.8×
spacewasm — interpreter
19.8× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
silverfir-nano.interpreter
20.0×
silverfir-nano.interpreter — interpreter
20.0× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
tinywasm
20.0×
tinywasm — interpreter
20.0× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasm3.eager
25.4×
wasm3.eager — interpreter
25.4× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wasmedge
26.5×
wasmedge — interpreter
26.5× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
wamr
35.2×
wamr — interpreter
35.2× the time of wasmi-v1.lazy.unchecked, geomean over 6 cases
fastest on 0 of them
The .lazy* configurations defer function-body translation to first call, so the top of this chart is not doing the same work as the eager engines below it. Off the scale, not charted: wasmtime.pulley (958×). Measured times are in the table below.
Startup benchmarks — full table of measured times Engine argon2 bz2 coremark erc20 ffmpeg pulldown-cmark spidermonkey dlr-wasm-interpreter 114.0 µs 320.2 µs 24.4 µs 24.0 µs 67.62 ms 923.8 µs 16.72 ms fizzy 219.0 µs 639.3 µs 53.1 µs 49.2 µs 129.47 ms 1.45 ms 30.20 ms silverfir-nano.interpreter 361.0 µs 835.3 µs 84.4 µs 75.2 µs 212.63 ms 3.43 ms 54.98 ms silverfir-nano.jit 10.75 ms 31.07 ms 2.95 ms 1.63 ms 5.97 s 72.13 ms 1.41 s spacewasm 290.6 µs 1.14 ms 60.8 µs 54.6 µs 181.97 ms 8.02 ms 38.31 ms stitch 145.1 µs 344.5 µs 31.8 µs 30.9 µs 70.00 ms 853.8 µs 16.73 ms submilli-wasm 202.8 µs 481.4 µs 48.1 µs 45.2 µs 97.07 ms 1.23 ms 22.99 ms tinywasm 436.5 µs 949.8 µs 91.7 µs 75.7 µs 200.27 ms 2.61 ms 48.39 ms toywasm 225.4 µs 492.3 µs 50.0 µs 44.1 µs 103.64 ms 1.38 ms 26.51 ms v8 497.0 µs 571.7 µs 459.5 µs 440.9 µs 12.80 ms 759.3 µs 3.85 ms wamr 638.5 µs 1.43 ms 188.4 µs 162.4 µs 289.55 ms 5.18 ms 74.07 ms wasm3.eager 490.2 µs 1.51 ms 94.6 µs 78.1 µs 213.74 ms 4.42 ms 62.28 ms wasm3.lazy 22.1 µs 45.9 µs 11.9 µs 6.7 µs 9.37 ms 67.9 µs 1.06 ms wasmedge 558.4 µs 1.23 ms 142.3 µs 121.0 µs 247.60 ms 2.77 ms 59.01 ms wasmer.cranelift 14.95 ms 43.83 ms 3.52 ms 3.23 ms 7.84 s 98.78 ms 2.03 s wasmer.singlepass 1.38 ms 3.41 ms 357.8 µs 382.6 µs 639.66 ms 10.10 ms 172.47 ms wasmi-v0.31 161.7 µs 360.9 µs 37.8 µs 37.2 µs 70.28 ms 895.1 µs 18.91 ms wasmi-v0.32 220.8 µs 520.0 µs 48.9 µs 46.4 µs 109.43 ms 1.28 ms 39.86 ms wasmi-v1.eager.checked 270.6 µs 682.2 µs 63.3 µs 56.3 µs 127.28 ms 1.50 ms 42.30 ms wasmi-v1.lazy-translation.checked 156.4 µs 401.0 µs 35.3 µs 32.5 µs 77.86 ms 828.2 µs 17.99 ms wasmi-v1.lazy.checked 23.7 µs 51.3 µs 6.0 µs 8.8 µs 9.30 ms 88.7 µs 1.62 ms wasmi-v1.lazy.unchecked 35.7 µs 42.4 µs 3.8 µs 5.5 µs 6.40 ms 85.0 µs 2.08 ms wasmi-v2.eager.checked 455.2 µs 923.6 µs 86.1 µs 74.5 µs 179.71 ms 2.18 ms 46.12 ms wasmi-v2.lazy-translation.checked 122.9 µs 294.3 µs 26.7 µs 24.3 µs 57.39 ms 672.5 µs 14.04 ms wasmi-v2.lazy.checked 39.3 µs 50.7 µs 7.4 µs 12.8 µs 12.33 ms 113.2 µs 1.97 ms wasmi-v2.lazy.unchecked 29.9 µs 41.0 µs 4.8 µs 6.5 µs 4.20 ms 151.8 µs 1.50 ms wasmtime.cranelift 16.33 ms 44.59 ms 3.46 ms 3.09 ms — 100.02 ms 1.89 s wasmtime.pulley 17.58 ms 62.86 ms 4.05 ms 3.70 ms — 116.32 ms 2.26 s wasmtime.winch 2.80 ms 3.97 ms 763.1 µs 917.4 µs 1.27 s 14.72 ms 282.68 ms
How to read this
Every bar is a Criterion point estimate — the linear-regression slope where Criterion could fit one, otherwise the mean. The per-case charts show that estimate directly. The two summary charts cannot: absolute times differ by orders of magnitude between workloads, so each engine is first scored against whichever engine won that case, and those ratios are combined with a geometric mean over the cases every engine completed. Engine classes come from the suite's own README. One property of a single-session laptop run is worth knowing before reading the absolute numbers: the machine drifts over the ~80 minutes the suite takes, and comparing this run against an earlier one shows unchanged third-party engines moving by tens of percent purely with their position in the run. Every comparison ON this page is made inside a single workload, where all engines run back-to-back within about two minutes, and the summary charts normalise each engine against that workload's winner before combining — so the drift cancels where it could change a conclusion. It does not cancel in the printed millisecond values, and it does not cancel across runs: to compare two revisions, use ci/wasmi_performance.py, which measures baseline and candidate on one machine minutes apart with a probability gate, not two pages like this one.