All Wasm benchmarks

Current benchmark data was generated on Wed Mar 22 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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
5.rs 2073ms 4.6ms 32.1MB 2057ms 3ms wasmedgec 0.11.2
3.rs 2104ms 9.6ms 47.4MB 2073ms 10ms wasmedgec 0.11.2
4.rs 2241ms 6.2ms 31.6MB 2223ms 3ms wasmedgec 0.11.2
3.rs 2473ms 55ms 44.3MB 2443ms 7ms wasmtime 7.0.0
4.rs 2728ms 30ms 64.0MB 2707ms 20ms node 18.15.0
5.rs 2817ms 17ms 65.7MB 2763ms 23ms node 18.15.0
3.rs 2818ms 115ms 81.2MB 2783ms 33ms node 18.15.0
5.rs 2877ms 3.5ms 28.3MB 2860ms 3ms wasmtime 7.0.0
4.rs 3080ms 28ms 28.2MB 3063ms 3ms wasmtime 7.0.0

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
5.rs 199ms 0.5ms 16.6MB 187ms 0ms wasmedgec 0.11.2
3.rs 200ms 5.0ms 19.4MB 180ms 0ms wasmedgec 0.11.2
4.rs 213ms 0.5ms 17.6MB 200ms 0ms wasmedgec 0.11.2
3.rs 228ms 5.4ms 16.0MB 213ms 0ms wasmtime 7.0.0
5.rs 279ms 4.3ms 14.1MB 270ms 0ms wasmtime 7.0.0
3.rs 301ms 11ms 52.2MB 290ms 3ms node 18.15.0
4.rs 301ms 9.2ms 14.1MB 287ms 0ms wasmtime 7.0.0
4.rs 308ms 8.8ms 51.6MB 293ms 10ms node 18.15.0
5.rs 309ms 1.6ms 50.6MB 293ms 7ms node 18.15.0

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 1531ms 71ms 58.5MB 1547ms 7ms node 18.15.0
3.rs 1540ms 15ms 14.3MB 1530ms 0ms wasmtime 7.0.0
3.rs 1949ms 6.3ms 18.3MB 1933ms 0ms wasmedgec 0.11.2

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 108ms 4.5ms 12.8MB 93ms 0ms wasmtime 7.0.0
3.rs 134ms 1.8ms 16.5MB 123ms 0ms wasmedgec 0.11.2
3.rs 167ms 3.4ms 57.4MB 180ms 3ms node 18.15.0

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 468ms 0.4ms 17.5MB 453ms 0ms wasmedgec 0.11.2
1.rs 612ms 2.6ms 13.4MB 600ms 0ms wasmtime 7.0.0
1.rs 631ms 2.9ms 56.2MB 647ms 17ms node 18.15.0

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 126ms 0.5ms 15.3MB 110ms 0ms wasmedgec 0.11.2
1.rs 161ms 0.9ms 12.7MB 143ms 0ms wasmtime 7.0.0
1.rs 223ms 4.0ms 55.5MB 247ms 17ms node 18.15.0

fannkuch-redux

Input: 11

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs timeout 0.0ms 49.4MB 4980ms 3ms node 18.15.0
1.rs timeout 0.0ms 15.6MB 4990ms 0ms wasmedgec 0.11.2
1.rs timeout 0.0ms 12.2MB 4983ms 3ms wasmtime 7.0.0

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 450ms 1.7ms 12.1MB 440ms 0ms wasmtime 7.0.0
1.rs 454ms 2.0ms 15.8MB 440ms 0ms wasmedgec 0.11.2
1.rs 839ms 1.6ms 49.2MB 833ms 0ms node 18.15.0

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 361ms 0.8ms 15.9MB 343ms 7ms wasmedgec 0.11.2
1.rs 451ms 1.5ms 12.2MB 430ms 0ms wasmtime 7.0.0
1.rs 468ms 1.2ms 49.2MB 453ms 7ms node 18.15.0

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 45ms 2.8ms 15.2MB 37ms 0ms wasmedgec 0.11.2
1.rs 53ms 1.9ms 12.3MB 40ms 0ms wasmtime 7.0.0
1.rs 95ms 3.0ms 49.5MB 77ms 3ms node 18.15.0

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 5.7ms 0.2ms 9.7MB 0ms 0ms wasmtime 7.0.0
1.rs 6.2ms 0.3ms 16.2MB 0ms 0ms wasmedgec 0.11.2
1.rs 49ms 2.5ms 47.5MB 34ms 0ms node 18.15.0

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 160ms 0.6ms 16.0MB 150ms 0ms wasmedgec 0.11.2
1.rs 202ms 1.5ms 12.1MB 187ms 0ms wasmtime 7.0.0
1.rs 282ms 3.2ms 53.5MB 280ms 7ms node 18.15.0

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 466ms 0.5ms 15.7MB 450ms 0ms wasmedgec 0.11.2
1.rs 589ms 2.2ms 12.3MB 570ms 0ms wasmtime 7.0.0
1.rs 729ms 4.5ms 53.6MB 723ms 7ms node 18.15.0

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 84ms 0.7ms 15.9MB 70ms 0ms wasmedgec 0.11.2
1.rs 104ms 1.7ms 12.2MB 93ms 0ms wasmtime 7.0.0
1.rs 161ms 2.4ms 50.9MB 150ms 10ms node 18.15.0

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
8.rs 1096ms 0.6ms 19.8MB 1083ms 0ms wasmedgec 0.11.2
8.rs 1241ms 0.9ms 15.3MB 1227ms 0ms wasmtime 7.0.0
8.rs 1371ms 4.1ms 53.7MB 1353ms 7ms node 18.15.0

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
8.rs 54ms 1.0ms 15.9MB 43ms 0ms wasmedgec 0.11.2
8.rs 59ms 0.4ms 12.3MB 43ms 0ms wasmtime 7.0.0
8.rs 108ms 2.2ms 50.8MB 93ms 7ms node 18.15.0

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 1078ms 20ms 40.1MB 1057ms 7ms wasmedgec 0.11.2
1.rs 1407ms 9.2ms 73.8MB 1377ms 20ms node 18.15.0
1.rs 1450ms 12ms 36.2MB 1427ms 10ms wasmtime 7.0.0

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 232ms 2.4ms 21.4MB 213ms 0ms wasmedgec 0.11.2
1.rs 316ms 0.6ms 18.1MB 303ms 3ms wasmtime 7.0.0
1.rs 343ms 6.1ms 55.9MB 330ms 10ms node 18.15.0

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 476ms 7.0ms 12.3MB 463ms 0ms wasmtime 7.0.0
1.rs 501ms 0.5ms 16.0MB 487ms 0ms wasmedgec 0.11.2
2.rs 688ms 10ms 12.3MB 673ms 0ms wasmtime 7.0.0
2.rs 697ms 7.3ms 16.0MB 680ms 0ms wasmedgec 0.11.2
1.rs 733ms 1.2ms 48.9MB 713ms 10ms node 18.15.0
2.rs 951ms 1.3ms 49.0MB 933ms 7ms node 18.15.0

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 55ms 0.4ms 12.2MB 50ms 0ms wasmtime 7.0.0
1.rs 57ms 0.3ms 16.2MB 43ms 0ms wasmedgec 0.11.2
2.rs 75ms 0.4ms 12.3MB 70ms 0ms wasmtime 7.0.0
2.rs 77ms 1.1ms 15.3MB 67ms 0ms wasmedgec 0.11.2
1.rs 126ms 6.5ms 49.5MB 107ms 7ms node 18.15.0
2.rs 143ms 0.6ms 48.3MB 133ms 3ms node 18.15.0

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 562ms 1.9ms 20.9MB 550ms 0ms wasmedgec 0.11.2
2.rs 796ms 3.6ms 17.1MB 783ms 0ms wasmtime 7.0.0
1.rs 1008ms 22ms 54.3MB 987ms 3ms wasmedgec 0.11.2
2.rs 1525ms 3.9ms 53.9MB 1507ms 10ms node 18.15.0
1.rs 1720ms 108ms 51.3MB 1703ms 3ms wasmtime 7.0.0
1.rs 1805ms 21ms 88.8MB 1787ms 7ms node 18.15.0

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 134ms 0.2ms 16.7MB 123ms 0ms wasmedgec 0.11.2
1.rs 150ms 0.2ms 25.2MB 133ms 0ms wasmedgec 0.11.2
2.rs 194ms 1.0ms 13.3MB 180ms 0ms wasmtime 7.0.0
1.rs 233ms 0.8ms 21.8MB 220ms 0ms wasmtime 7.0.0
1.rs 371ms 5.0ms 59.4MB 353ms 7ms node 18.15.0
2.rs 409ms 0.8ms 50.4MB 397ms 7ms node 18.15.0

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 2768ms 5.8ms 17.5MB 2753ms 0ms wasmedgec 0.11.2
2.rs 3103ms 0.4ms 13.2MB 3090ms 0ms wasmtime 7.0.0
2.rs 3334ms 1.7ms 54.2MB 3337ms 17ms node 18.15.0

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 652ms 2.7ms 16.0MB 643ms 0ms wasmedgec 0.11.2
2.rs 729ms 0.6ms 12.8MB 713ms 0ms wasmtime 7.0.0
2.rs 831ms 2.1ms 54.1MB 827ms 20ms node 18.15.0

secp256k1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 4561ms 5.2ms 16.0MB 4543ms 0ms wasmedgec 0.11.2
1.rs 4738ms 49ms 64.9MB 4800ms 17ms node 18.15.0
1.rs timeout 0.0ms 12.4MB 4980ms 0ms wasmtime 7.0.0

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 1146ms 0.7ms 14.9MB 1133ms 0ms wasmedgec 0.11.2
1.rs 1267ms 4.1ms 67.2MB 1300ms 33ms node 18.15.0
1.rs 1301ms 1.1ms 12.4MB 1287ms 0ms wasmtime 7.0.0

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 4130ms 2.5ms 15.9MB 4113ms 0ms wasmedgec 0.11.2
7.rs 4246ms 1.0ms 16.6MB 4230ms 0ms wasmedgec 0.11.2
2.rs 4336ms 3.4ms 49.3MB 4313ms 7ms node 18.15.0
2.rs 4386ms 9.3ms 12.4MB 4370ms 0ms wasmtime 7.0.0
7.rs 4558ms 1.7ms 49.2MB 4537ms 10ms node 18.15.0
7.rs timeout 0.0ms 12.3MB 4983ms 0ms wasmtime 7.0.0

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 1038ms 0.7ms 15.8MB 1023ms 0ms wasmedgec 0.11.2
7.rs 1069ms 1.1ms 15.6MB 1053ms 0ms wasmedgec 0.11.2
2.rs 1125ms 4.3ms 48.5MB 1110ms 3ms node 18.15.0
2.rs 1137ms 1.3ms 12.3MB 1123ms 0ms wasmtime 7.0.0
7.rs 1179ms 2.6ms 49.2MB 1160ms 7ms node 18.15.0
7.rs 3283ms 1.0ms 12.5MB 3267ms 0ms wasmtime 7.0.0

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 266ms 0.3ms 16.3MB 253ms 0ms wasmedgec 0.11.2
7.rs 274ms 0.4ms 16.4MB 260ms 0ms wasmedgec 0.11.2
2.rs 293ms 1.1ms 12.3MB 280ms 0ms wasmtime 7.0.0
2.rs 319ms 2.0ms 48.8MB 303ms 7ms node 18.15.0
7.rs 331ms 0.8ms 48.9MB 320ms 3ms node 18.15.0
7.rs 828ms 2.4ms 12.4MB 813ms 0ms wasmtime 7.0.0