All Wasm benchmarks

Current benchmark data was generated on Fri Dec 09 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -m in a file name stands for multi-threading or multi-processing

* -i in a file name stands for direct intrinsics usage. (Usage of simd intrinsics via libraries is not counted)

* -ffi in a file name stands for non-stdlib FFI usage

* (You may find time < time(user) + time(sys) for some non-parallelized programs, the overhead is from GC or JIT compiler, which are allowed to take advantage of multi-cores as that's more close to real-world scenarios.)

binarytrees

Input: 18

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 2176ms 15ms 47.0MB 2147ms 17ms wasmedgec 0.11.2
5.rs 2227ms 11ms 31.0MB 2207ms 7ms wasmedgec 0.11.2
4.rs 2358ms 0.9ms 32.4MB 2343ms 3ms wasmedgec 0.11.2
5.rs 2729ms 56ms 58.5MB 2720ms 20ms node 16.18.1
3.rs 2792ms 62ms 74.7MB 2780ms 23ms node 16.18.1
4.rs 2811ms 80ms 58.3MB 2813ms 10ms node 16.18.1
3.rs 3192ms 3.1ms 42.3MB 3170ms 7ms wasmtime 3.0.1
4.rs 3244ms 19ms 26.3MB 3227ms 3ms wasmtime 3.0.1
5.rs 3322ms 1.9ms 26.5MB 3310ms 0ms wasmtime 3.0.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 205ms 1.1ms 20.3MB 190ms 0ms wasmedgec 0.11.2
5.rs 212ms 1.8ms 17.1MB 197ms 0ms wasmedgec 0.11.2
4.rs 224ms 0.6ms 18.1MB 217ms 0ms wasmedgec 0.11.2
3.rs 299ms 2.4ms 14.5MB 283ms 0ms wasmtime 3.0.1
4.rs 307ms 2.7ms 12.4MB 290ms 0ms wasmtime 3.0.1
5.rs 322ms 8.1ms 44.2MB 323ms 10ms node 16.18.1
3.rs 324ms 0.5ms 46.7MB 327ms 7ms node 16.18.1
5.rs 326ms 10ms 12.6MB 303ms 0ms wasmtime 3.0.1
4.rs 326ms 1.7ms 44.4MB 333ms 0ms node 16.18.1

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 1451ms 13ms 49.9MB 1483ms 10ms node 16.18.1
3.rs 1860ms 9.8ms 12.7MB 1843ms 0ms wasmtime 3.0.1
3.rs 2059ms 5.0ms 18.5MB 2040ms 3ms wasmedgec 0.11.2

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 123ms 0.3ms 12.0MB 110ms 3ms wasmtime 3.0.1
3.rs 138ms 0.3ms 17.4MB 130ms 0ms wasmedgec 0.11.2
3.rs 205ms 1.3ms 47.8MB 243ms 10ms node 16.18.1

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 474ms 0.8ms 16.8MB 460ms 0ms wasmedgec 0.11.2
1.rs 652ms 4.9ms 48.8MB 693ms 10ms node 16.18.1
1.rs 667ms 0.5ms 11.9MB 650ms 0ms wasmtime 3.0.1

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 128ms 0.6ms 16.9MB 113ms 0ms wasmedgec 0.11.2
1.rs 176ms 1.2ms 11.1MB 163ms 0ms wasmtime 3.0.1
1.rs 257ms 1.3ms 49.1MB 290ms 17ms node 16.18.1

fannkuch-redux

Input: 11

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs timeout 0.0ms 0.0MB 0ms 0ms node 16.18.1
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmedgec 0.11.2
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmtime 3.0.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 465ms 2.8ms 16.0MB 450ms 0ms wasmedgec 0.11.2
1.rs 470ms 0.5ms 11.2MB 460ms 0ms wasmtime 3.0.1
1.rs 492ms 3.8ms 43.6MB 500ms 3ms node 16.18.1

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 325ms 0.4ms 14.9MB 313ms 0ms wasmedgec 0.11.2
1.rs 392ms 5.4ms 44.2MB 397ms 10ms node 16.18.1
1.rs 438ms 0.9ms 9.4MB 417ms 3ms wasmtime 3.0.1

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 41ms 0.3ms 15.4MB 30ms 0ms wasmedgec 0.11.2
1.rs 50ms 1.2ms 9.5MB 40ms 0ms wasmtime 3.0.1
1.rs 117ms 2.8ms 43.9MB 120ms 17ms node 16.18.1

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 5.7ms 0.6ms 9.4MB 0ms 0ms wasmtime 3.0.1
1.rs 6.4ms 0.4ms 15.4MB 0ms 0ms wasmedgec 0.11.2
1.rs 80ms 2.7ms 43.9MB 92ms 4ms node 16.18.1

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 157ms 1.0ms 16.2MB 147ms 0ms wasmedgec 0.11.2
1.rs 207ms 0.1ms 9.5MB 200ms 0ms wasmtime 3.0.1
1.rs 260ms 1.7ms 44.9MB 277ms 3ms node 16.18.1

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 455ms 1.8ms 16.2MB 443ms 0ms wasmedgec 0.11.2
1.rs 610ms 5.5ms 9.5MB 600ms 0ms wasmtime 3.0.1
1.rs 616ms 3.6ms 45.2MB 620ms 10ms node 16.18.1

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 81ms 0.5ms 15.4MB 70ms 0ms wasmedgec 0.11.2
1.rs 103ms 0.3ms 10.3MB 90ms 0ms wasmtime 3.0.1
1.rs 169ms 2.7ms 44.9MB 180ms 7ms node 16.18.1

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
8.rs 1018ms 2.6ms 48.0MB 1033ms 7ms node 16.18.1
8.rs 1057ms 12ms 19.9MB 1043ms 0ms wasmedgec 0.11.2
8.rs 1413ms 2.0ms 13.8MB 1400ms 0ms wasmtime 3.0.1

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
8.rs 53ms 1.1ms 15.5MB 40ms 0ms wasmedgec 0.11.2
8.rs 66ms 0.9ms 10.9MB 53ms 0ms wasmtime 3.0.1
8.rs 125ms 1.7ms 44.9MB 143ms 0ms node 16.18.1

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 1146ms 6.4ms 40.4MB 1127ms 3ms wasmedgec 0.11.2
1.rs 1393ms 29ms 67.4MB 1390ms 13ms node 16.18.1
1.rs 1647ms 15ms 36.3MB 1623ms 7ms wasmtime 3.0.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 249ms 1.0ms 21.6MB 230ms 7ms wasmedgec 0.11.2
1.rs 351ms 1.5ms 49.6MB 357ms 3ms node 16.18.1
1.rs 355ms 3.7ms 16.3MB 340ms 0ms wasmtime 3.0.1

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 563ms 12ms 11.4MB 547ms 0ms wasmtime 3.0.1
1.rs 595ms 13ms 15.8MB 583ms 0ms wasmedgec 0.11.2
1.rs 654ms 3.6ms 52.3MB 667ms 13ms node 16.18.1
2.rs 809ms 0.6ms 11.6MB 800ms 0ms wasmtime 3.0.1
2.rs 832ms 0.4ms 16.7MB 820ms 0ms wasmedgec 0.11.2
2.rs 877ms 11ms 49.2MB 897ms 3ms node 16.18.1

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 64ms 0.7ms 10.7MB 53ms 3ms wasmtime 3.0.1
1.rs 68ms 0.6ms 15.8MB 50ms 0ms wasmedgec 0.11.2
2.rs 88ms 0.4ms 11.3MB 77ms 0ms wasmtime 3.0.1
2.rs 91ms 1.0ms 15.8MB 80ms 0ms wasmedgec 0.11.2
1.rs 152ms 3.5ms 48.6MB 173ms 3ms node 16.18.1
2.rs 176ms 0.9ms 49.1MB 190ms 10ms node 16.18.1

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 683ms 1.5ms 20.8MB 670ms 0ms wasmedgec 0.11.2
2.rs 768ms 0.5ms 48.7MB 773ms 10ms node 16.18.1
1.rs 805ms 7.5ms 54.7MB 780ms 7ms wasmedgec 0.11.2
1.rs 983ms 24ms 83.2MB 977ms 23ms node 16.18.1
2.rs 1040ms 1.7ms 15.3MB 1027ms 0ms wasmtime 3.0.1
1.rs 1177ms 4.8ms 49.6MB 1150ms 10ms wasmtime 3.0.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 138ms 1.1ms 26.2MB 127ms 0ms wasmedgec 0.11.2
2.rs 163ms 0.2ms 17.5MB 153ms 0ms wasmedgec 0.11.2
1.rs 238ms 6.6ms 54.0MB 240ms 7ms node 16.18.1
2.rs 243ms 2.1ms 45.0MB 243ms 13ms node 16.18.1
1.rs 251ms 1.2ms 20.2MB 233ms 0ms wasmtime 3.0.1
2.rs 251ms 0.8ms 11.8MB 233ms 0ms wasmtime 3.0.1

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 2862ms 5.3ms 17.3MB 2840ms 0ms wasmedgec 0.11.2
2.rs 3323ms 3.4ms 11.4MB 3303ms 3ms wasmtime 3.0.1
2.rs 3349ms 6.7ms 49.4MB 3383ms 10ms node 16.18.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 678ms 0.4ms 16.2MB 667ms 0ms wasmedgec 0.11.2
2.rs 790ms 0.3ms 10.8MB 780ms 0ms wasmtime 3.0.1
2.rs 879ms 2.3ms 49.4MB 917ms 3ms node 16.18.1

secp256k1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
0.rs 354ms 0.3ms 16.8MB 340ms 0ms wasmedgec 0.11.2
0.rs 425ms 0.8ms 9.8MB 410ms 0ms wasmtime 3.0.1
0.rs 455ms 2.8ms 47.4MB 467ms 10ms node 16.18.1
1.rs 4292ms 0.9ms 16.2MB 4273ms 0ms wasmedgec 0.11.2
1.rs 4594ms 18ms 59.3MB 4640ms 13ms node 16.18.1
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmtime 3.0.1

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
0.rs 95ms 1.9ms 15.7MB 83ms 0ms wasmedgec 0.11.2
0.rs 113ms 1.2ms 11.5MB 100ms 0ms wasmtime 3.0.1
0.rs 189ms 0.7ms 47.2MB 207ms 10ms node 16.18.1
1.rs 1080ms 0.9ms 15.7MB 1070ms 0ms wasmedgec 0.11.2
1.rs 1251ms 10ms 58.8MB 1290ms 20ms node 16.18.1
1.rs 1391ms 1.9ms 10.4MB 1380ms 0ms wasmtime 3.0.1

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 3439ms 1.0ms 16.0MB 3423ms 0ms wasmedgec 0.11.2
7.rs 3665ms 22ms 16.8MB 3653ms 0ms wasmedgec 0.11.2
7.rs 4042ms 1.0ms 11.7MB 4030ms 0ms wasmtime 3.0.1
7.rs 4157ms 31ms 49.1MB 4170ms 10ms node 16.18.1
2.rs 4419ms 3.5ms 48.8MB 4437ms 7ms node 16.18.1
2.rs 4510ms 0.4ms 10.9MB 4500ms 0ms wasmtime 3.0.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 866ms 0.5ms 16.6MB 853ms 0ms wasmedgec 0.11.2
7.rs 925ms 0.0ms 16.9MB 910ms 0ms wasmedgec 0.11.2
7.rs 1017ms 2.1ms 9.6MB 1000ms 0ms wasmtime 3.0.1
7.rs 1121ms 3.9ms 49.3MB 1123ms 17ms node 16.18.1
2.rs 1135ms 0.3ms 9.6MB 1123ms 0ms wasmtime 3.0.1
2.rs 1180ms 3.0ms 49.1MB 1193ms 10ms node 16.18.1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 224ms 2.9ms 15.6MB 210ms 0ms wasmedgec 0.11.2
7.rs 238ms 0.6ms 16.5MB 223ms 0ms wasmedgec 0.11.2
7.rs 261ms 1.4ms 9.5MB 250ms 0ms wasmtime 3.0.1
2.rs 291ms 0.7ms 10.9MB 277ms 0ms wasmtime 3.0.1
7.rs 358ms 2.3ms 49.1MB 370ms 10ms node 16.18.1
2.rs 372ms 0.6ms 48.8MB 383ms 7ms node 16.18.1