All Wasm benchmarks

Current benchmark data was generated on Fri Jul 01 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8171M 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
5.rs 2641ms 18ms 21.8MB 2617ms 13ms wasmer/llvm 2.3.0
5.rs 2646ms 34ms 21.2MB 2617ms 10ms wasmedgec 0.10.0
3.rs 2648ms 20ms 37.8MB 2593ms 33ms wasmer/llvm 2.3.0
4.rs 2717ms 23ms 21.7MB 2690ms 10ms wasmer/llvm 2.3.0
3.rs 2781ms 37ms 37.2MB 2753ms 10ms wasmedgec 0.10.0
4.rs 3346ms 37ms 21.3MB 3323ms 3ms wasmedgec 0.10.0
5.rs 3382ms 36ms 58.3MB 3390ms 17ms node 16.15.1
3.rs 3406ms 25ms 42.6MB 3377ms 13ms wasmtime 0.38.1
3.rs 3450ms 31ms 75.1MB 3443ms 20ms node 16.15.1
4.rs 3521ms 51ms 58.7MB 3530ms 17ms node 16.15.1
5.rs 3701ms 26ms 26.6MB 3680ms 3ms wasmtime 0.38.1
4.rs 3763ms 21ms 26.6MB 3747ms 7ms wasmtime 0.38.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 242ms 2.7ms 10.0MB 227ms 0ms wasmer/llvm 2.3.0
5.rs 246ms 3.6ms 7.4MB 230ms 0ms wasmedgec 0.10.0
4.rs 253ms 3.3ms 7.9MB 237ms 0ms wasmer/llvm 2.3.0
5.rs 255ms 14ms 7.9MB 237ms 0ms wasmer/llvm 2.3.0
3.rs 257ms 7.1ms 9.3MB 243ms 0ms wasmedgec 0.10.0
3.rs 315ms 3.9ms 14.7MB 297ms 0ms wasmtime 0.38.1
4.rs 332ms 46ms 7.3MB 317ms 0ms wasmedgec 0.10.0
5.rs 351ms 5.3ms 12.7MB 337ms 0ms wasmtime 0.38.1
4.rs 354ms 4.7ms 12.7MB 337ms 0ms wasmtime 0.38.1
3.rs 396ms 3.9ms 45.6MB 403ms 13ms node 16.15.1
5.rs 398ms 17ms 44.1MB 410ms 10ms node 16.15.1
4.rs 409ms 4.6ms 44.5MB 427ms 3ms node 16.15.1

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 1561ms 21ms 8.4MB 1543ms 0ms wasmer/llvm 2.3.0
3.rs 1846ms 11ms 47.6MB 1897ms 20ms node 16.15.1
3.rs 1952ms 36ms 12.6MB 1927ms 7ms wasmtime 0.38.1

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.rs 98ms 0.1ms 6.9MB 83ms 0ms wasmer/llvm 2.3.0
3.rs 130ms 1.9ms 12.0MB 113ms 0ms wasmtime 0.38.1
3.rs 259ms 5.6ms 47.7MB 307ms 20ms node 16.15.1

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 539ms 4.7ms 7.1MB 523ms 0ms wasmer/llvm 2.3.0
1.rs 594ms 5.9ms 6.6MB 580ms 0ms wasmedgec 0.10.0
1.rs 717ms 18ms 11.9MB 697ms 0ms wasmtime 0.38.1
1.rs 826ms 8.9ms 48.2MB 887ms 10ms node 16.15.1

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 144ms 0.8ms 6.2MB 123ms 0ms wasmer/llvm 2.3.0
1.rs 154ms 2.5ms 5.8MB 143ms 0ms wasmedgec 0.10.0
1.rs 189ms 2.9ms 11.2MB 177ms 0ms wasmtime 0.38.1
1.rs 315ms 1.3ms 48.1MB 363ms 20ms node 16.15.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.15.1
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmedgec 0.10.0
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmer/llvm 2.3.0
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmtime 0.38.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 523ms 6.7ms 4.6MB 510ms 0ms wasmer/llvm 2.3.0
1.rs 534ms 4.9ms 9.4MB 523ms 0ms wasmtime 0.38.1
1.rs 618ms 11ms 43.2MB 633ms 3ms node 16.15.1
1.rs 706ms 1.8ms 5.3MB 690ms 0ms wasmedgec 0.10.0

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 369ms 3.0ms 5.3MB 353ms 0ms wasmedgec 0.10.0
1.rs 378ms 6.3ms 6.0MB 360ms 0ms wasmer/llvm 2.3.0
1.rs 383ms 3.2ms 10.5MB 370ms 0ms wasmtime 0.38.1
1.rs 515ms 14ms 43.0MB 530ms 13ms node 16.15.1

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 43ms 2.0ms 5.3MB 30ms 0ms wasmedgec 0.10.0
1.rs 48ms 2.4ms 9.3MB 33ms 0ms wasmtime 0.38.1
1.rs 51ms 11ms 6.0MB 33ms 0ms wasmer/llvm 2.3.0
1.rs 141ms 1.9ms 42.8MB 150ms 20ms node 16.15.1

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 4.2ms 1.7ms 4.4MB 0ms 0ms wasmer/llvm 2.3.0
1.rs 4.9ms 0.9ms 5.4MB 0ms 0ms wasmedgec 0.10.0
1.rs 7.2ms 1.0ms 10.3MB 0ms 0ms wasmtime 0.38.1
1.rs 95ms 2.0ms 42.7MB 118ms 0ms node 16.15.1

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 147ms 1.0ms 6.1MB 137ms 0ms wasmer/llvm 2.3.0
1.rs 161ms 1.0ms 5.4MB 150ms 0ms wasmedgec 0.10.0
1.rs 175ms 5.0ms 11.4MB 163ms 0ms wasmtime 0.38.1
1.rs 273ms 1.7ms 43.7MB 287ms 10ms node 16.15.1

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 433ms 1.4ms 5.7MB 417ms 0ms wasmer/llvm 2.3.0
1.rs 479ms 2.8ms 5.4MB 467ms 0ms wasmedgec 0.10.0
1.rs 501ms 4.5ms 10.8MB 483ms 0ms wasmtime 0.38.1
1.rs 610ms 13ms 43.9MB 633ms 7ms node 16.15.1

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 73ms 0.8ms 4.8MB 60ms 0ms wasmer/llvm 2.3.0
1.rs 83ms 4.8ms 5.3MB 70ms 0ms wasmedgec 0.10.0
1.rs 87ms 2.6ms 9.1MB 80ms 0ms wasmtime 0.38.1
1.rs 185ms 1.7ms 43.7MB 200ms 13ms node 16.15.1

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
8.rs 1251ms 2.7ms 46.7MB 1267ms 10ms node 16.15.1
8.rs 1313ms 10ms 8.2MB 1300ms 0ms wasmedgec 0.10.0
8.rs 1510ms 37ms 9.0MB 1487ms 0ms wasmer/llvm 2.3.0
8.rs 1705ms 12ms 13.6MB 1690ms 0ms wasmtime 0.38.1

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
8.rs 61ms 1.3ms 5.6MB 40ms 0ms wasmedgec 0.10.0
8.rs 68ms 1.3ms 6.1MB 60ms 0ms wasmer/llvm 2.3.0
8.rs 81ms 3.3ms 10.8MB 63ms 0ms wasmtime 0.38.1
8.rs 152ms 3.8ms 43.9MB 170ms 10ms node 16.15.1

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 1324ms 34ms 29.5MB 1287ms 23ms wasmer/llvm 2.3.0
1.rs 1391ms 9.4ms 29.2MB 1367ms 10ms wasmedgec 0.10.0
1.rs 1692ms 20ms 66.6MB 1700ms 17ms node 16.15.1
1.rs 1705ms 19ms 34.6MB 1677ms 13ms wasmtime 0.38.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 281ms 1.5ms 11.6MB 260ms 3ms wasmer/llvm 2.3.0
1.rs 297ms 5.7ms 11.3MB 283ms 0ms wasmedgec 0.10.0
1.rs 365ms 2.8ms 16.8MB 350ms 0ms wasmtime 0.38.1
1.rs 429ms 1.5ms 52.9MB 433ms 17ms node 16.15.1

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 665ms 6.0ms 4.7MB 653ms 0ms wasmer/llvm 2.3.0
1.rs 693ms 7.8ms 10.4MB 680ms 0ms wasmtime 0.38.1
1.rs 756ms 13ms 5.4MB 743ms 0ms wasmedgec 0.10.0
1.rs 791ms 3.4ms 47.5MB 817ms 10ms node 16.15.1
2.rs 996ms 12ms 5.3MB 980ms 0ms wasmedgec 0.10.0
2.rs 1005ms 2.7ms 4.5MB 990ms 0ms wasmer/llvm 2.3.0
2.rs 1016ms 7.4ms 9.3MB 997ms 0ms wasmtime 0.38.1
2.rs 1094ms 10ms 47.7MB 1120ms 10ms node 16.15.1

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rs 74ms 4.5ms 4.7MB 60ms 0ms wasmer/llvm 2.3.0
1.rs 78ms 0.4ms 5.3MB 67ms 0ms wasmedgec 0.10.0
1.rs 78ms 2.2ms 9.2MB 70ms 0ms wasmtime 0.38.1
2.rs 104ms 1.2ms 5.2MB 93ms 0ms wasmedgec 0.10.0
2.rs 107ms 0.8ms 4.6MB 100ms 0ms wasmer/llvm 2.3.0
2.rs 110ms 0.9ms 10.5MB 100ms 0ms wasmtime 0.38.1
1.rs 187ms 2.6ms 48.1MB 213ms 10ms node 16.15.1
2.rs 226ms 5.4ms 47.5MB 250ms 10ms node 16.15.1

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 607ms 0.7ms 10.1MB 587ms 3ms wasmer/llvm 2.3.0
2.rs 709ms 0.8ms 10.1MB 693ms 0ms wasmedgec 0.10.0
2.rs 1023ms 41ms 47.7MB 1033ms 7ms node 16.15.1
1.rs 1136ms 72ms 46.2MB 1110ms 10ms wasmedgec 0.10.0
1.rs 1162ms 15ms 44.4MB 1117ms 27ms wasmer/llvm 2.3.0
2.rs 1182ms 12ms 15.6MB 1163ms 0ms wasmtime 0.38.1
1.rs 1334ms 60ms 81.8MB 1343ms 13ms node 16.15.1
1.rs 1847ms 16ms 49.8MB 1820ms 10ms wasmtime 0.38.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 141ms 4.4ms 6.7MB 127ms 0ms wasmer/llvm 2.3.0
2.rs 162ms 3.3ms 6.5MB 150ms 0ms wasmedgec 0.10.0
1.rs 166ms 2.4ms 15.1MB 153ms 0ms wasmedgec 0.10.0
1.rs 174ms 1.9ms 15.6MB 150ms 10ms wasmer/llvm 2.3.0
1.rs 256ms 8.7ms 20.5MB 240ms 0ms wasmtime 0.38.1
2.rs 285ms 3.2ms 11.9MB 270ms 0ms wasmtime 0.38.1
1.rs 295ms 9.6ms 52.7MB 310ms 7ms node 16.15.1
2.rs 321ms 8.2ms 45.4MB 333ms 10ms node 16.15.1

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 3869ms 8.8ms 6.3MB 3853ms 0ms wasmer/llvm 2.3.0
2.rs 4240ms 27ms 6.1MB 4220ms 0ms wasmedgec 0.10.0
2.rs 4670ms 24ms 47.7MB 4720ms 20ms node 16.15.1
2.rs 4756ms 5.9ms 11.2MB 4740ms 3ms wasmtime 0.38.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 918ms 25ms 5.9MB 897ms 0ms wasmer/llvm 2.3.0
2.rs 997ms 20ms 5.8MB 980ms 0ms wasmedgec 0.10.0
2.rs 1133ms 9.2ms 10.9MB 1117ms 3ms wasmtime 0.38.1
2.rs 1204ms 4.1ms 47.7MB 1263ms 10ms node 16.15.1

secp256k1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
0.rs 445ms 2.0ms 5.3MB 430ms 0ms wasmedgec 0.10.0
0.rs 484ms 0.9ms 4.6MB 470ms 0ms wasmer/llvm 2.3.0
0.rs 543ms 12ms 9.5MB 527ms 0ms wasmtime 0.38.1
0.rs 587ms 5.5ms 49.9MB 613ms 17ms node 16.15.1
1.rs timeout 0.0ms 0.0MB 0ms 0ms node 16.15.1
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmedgec 0.10.0
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmer/llvm 2.3.0
1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmtime 0.38.1

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
0.rs 117ms 1.2ms 5.2MB 103ms 0ms wasmedgec 0.10.0
0.rs 125ms 1.7ms 4.7MB 113ms 0ms wasmer/llvm 2.3.0
0.rs 149ms 14ms 10.5MB 137ms 0ms wasmtime 0.38.1
0.rs 234ms 3.8ms 45.3MB 267ms 10ms node 16.15.1
1.rs 1270ms 15ms 4.6MB 1253ms 0ms wasmer/llvm 2.3.0
1.rs 1298ms 8.4ms 5.3MB 1283ms 0ms wasmedgec 0.10.0
1.rs 1515ms 16ms 10.4MB 1503ms 0ms wasmtime 0.38.1
1.rs 1563ms 16ms 51.0MB 1627ms 13ms node 16.15.1

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 4230ms 18ms 5.5MB 4210ms 0ms wasmedgec 0.10.0
2.rs 4245ms 13ms 11.1MB 4230ms 0ms wasmtime 0.38.1
7.rs 4474ms 33ms 6.2MB 4457ms 3ms wasmer/llvm 2.3.0
7.rs 4542ms 18ms 5.6MB 4530ms 0ms wasmedgec 0.10.0
2.rs 4620ms 39ms 6.0MB 4610ms 0ms wasmer/llvm 2.3.0
2.rs timeout 0.0ms 0.0MB 0ms 0ms node 16.15.1
7.rs timeout 0.0ms 0.0MB 0ms 0ms node 16.15.1
7.rs timeout 0.0ms 0.0MB 0ms 0ms wasmtime 0.38.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 1057ms 7.3ms 5.5MB 1043ms 0ms wasmedgec 0.10.0
2.rs 1071ms 6.2ms 11.0MB 1057ms 0ms wasmtime 0.38.1
7.rs 1136ms 37ms 6.1MB 1120ms 0ms wasmer/llvm 2.3.0
7.rs 1161ms 9.6ms 5.4MB 1150ms 0ms wasmedgec 0.10.0
2.rs 1165ms 5.1ms 6.2MB 1153ms 0ms wasmer/llvm 2.3.0
7.rs 1259ms 14ms 10.7MB 1247ms 0ms wasmtime 0.38.1
7.rs 1364ms 11ms 47.5MB 1393ms 10ms node 16.15.1
2.rs 1458ms 4.7ms 47.2MB 1480ms 13ms node 16.15.1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rs 270ms 2.7ms 5.2MB 257ms 0ms wasmedgec 0.10.0
2.rs 276ms 6.2ms 9.7MB 263ms 0ms wasmtime 0.38.1
7.rs 291ms 1.6ms 7.2MB 277ms 0ms wasmedgec 0.10.0
7.rs 296ms 12ms 5.8MB 277ms 0ms wasmer/llvm 2.3.0
2.rs 298ms 9.9ms 5.6MB 280ms 0ms wasmer/llvm 2.3.0
7.rs 321ms 2.1ms 11.6MB 307ms 0ms wasmtime 0.38.1
7.rs 432ms 5.8ms 48.1MB 457ms 10ms node 16.15.1
2.rs 452ms 6.2ms 47.4MB 477ms 17ms node 16.15.1