Odin VS Wasm benchmarks

Current benchmark data was generated on Sat Jan 28 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.)

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 2.0ms 0.7ms 1.7MB 0ms 0ms odin 2023
wasm 1.rs 6.0ms 0.3ms 10.8MB 0ms 0ms wasmtime 5.0.0
wasm 1.rs 6.3ms 0.3ms 15.9MB 0ms 0ms wasmedgec 0.11.2
wasm 1.rs 81ms 1.5ms 43.3MB 96ms 4ms node 16.19.0

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1-m.odin 852ms 21ms 46.9MB 1477ms 43ms odin 2023

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 173ms 1.9ms 29.8MB 220ms 20ms odin 2023

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 162ms 3.5ms 15.8MB 150ms 0ms wasmedgec 0.11.2
wasm 1.rs 206ms 1.2ms 11.1MB 193ms 0ms wasmtime 5.0.0
odin 1.odin 275ms 3.5ms 1.3MB 263ms 0ms odin 2023
wasm 1.rs 279ms 8.7ms 44.5MB 283ms 10ms node 16.19.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 461ms 0.7ms 15.6MB 450ms 0ms wasmedgec 0.11.2
wasm 1.rs 601ms 1.2ms 11.1MB 585ms 0ms wasmtime 5.0.0
wasm 1.rs 649ms 8.1ms 44.5MB 657ms 3ms node 16.19.0
odin 1.odin 820ms 9.6ms 1.2MB 807ms 0ms odin 2023

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 82ms 1.2ms 14.7MB 70ms 0ms wasmedgec 0.11.2
wasm 1.rs 105ms 0.5ms 9.2MB 90ms 0ms wasmtime 5.0.0
odin 1.odin 112ms 0.5ms 1.2MB 100ms 0ms odin 2023
wasm 1.rs 180ms 3.4ms 44.6MB 190ms 3ms node 16.19.0

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 8.rs 1074ms 4.0ms 47.4MB 1073ms 17ms node 16.19.0
wasm 8.rs 1100ms 4.8ms 18.6MB 1087ms 0ms wasmedgec 0.11.2
wasm 8.rs 1323ms 17ms 14.1MB 1300ms 0ms wasmtime 5.0.0
odin 1.odin 1585ms 2.5ms 4.5MB 1570ms 0ms odin 2023

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 8.rs 54ms 1.3ms 16.2MB 43ms 0ms wasmedgec 0.11.2
wasm 8.rs 63ms 0.7ms 11.3MB 53ms 0ms wasmtime 5.0.0
odin 1.odin 68ms 0.3ms 1.3MB 60ms 0ms odin 2023
wasm 8.rs 137ms 3.2ms 44.8MB 150ms 3ms node 16.19.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 497ms 15ms 9.3MB 483ms 0ms wasmtime 5.0.0
wasm 1.rs 502ms 2.4ms 15.3MB 487ms 0ms wasmedgec 0.11.2
odin 1-i.odin 529ms 0.2ms 1.2MB 520ms 0ms odin 2023
wasm 1.rs 576ms 5.1ms 48.0MB 593ms 7ms node 16.19.0
wasm 2.rs 673ms 5.3ms 9.4MB 657ms 0ms wasmtime 5.0.0
wasm 2.rs 694ms 1.0ms 15.8MB 680ms 0ms wasmedgec 0.11.2
wasm 2.rs 751ms 0.9ms 50.7MB 763ms 13ms node 16.19.0
odin 1.odin 2890ms 20ms 1.2MB 2877ms 0ms odin 2023

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 56ms 0.4ms 10.8MB 43ms 0ms wasmtime 5.0.0
odin 1-i.odin 56ms 2.3ms 1.2MB 50ms 0ms odin 2023
wasm 1.rs 58ms 0.6ms 15.8MB 47ms 0ms wasmedgec 0.11.2
wasm 2.rs 75ms 1.4ms 9.4MB 60ms 0ms wasmtime 5.0.0
wasm 2.rs 77ms 1.0ms 15.4MB 63ms 0ms wasmedgec 0.11.2
wasm 1.rs 147ms 5.0ms 48.1MB 163ms 7ms node 16.19.0
wasm 2.rs 171ms 1.8ms 48.8MB 187ms 10ms node 16.19.0
odin 1.odin 290ms 0.2ms 1.2MB 280ms 0ms odin 2023

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 545ms 31ms 40.6MB 520ms 7ms odin 2023
wasm 2.rs 565ms 5.4ms 20.6MB 547ms 0ms wasmedgec 0.11.2
wasm 2.rs 741ms 3.2ms 15.9MB 727ms 0ms wasmtime 5.0.0
wasm 2.rs 743ms 13ms 48.5MB 747ms 10ms node 16.19.0
odin 2.odin 1176ms 2.5ms 6.4MB 1163ms 0ms odin 2023
wasm 1.rs 1448ms 159ms 54.0MB 1423ms 10ms wasmedgec 0.11.2
wasm 1.rs 1486ms 103ms 82.8MB 1483ms 20ms node 16.19.0
wasm 1.rs 2121ms 90ms 50.1MB 2100ms 3ms wasmtime 5.0.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 119ms 0.9ms 11.3MB 110ms 0ms odin 2023
wasm 2.rs 137ms 2.3ms 16.9MB 120ms 0ms wasmedgec 0.11.2
wasm 2.rs 176ms 0.6ms 12.1MB 163ms 0ms wasmtime 5.0.0
wasm 1.rs 182ms 9.1ms 25.3MB 167ms 0ms wasmedgec 0.11.2
wasm 1.rs 234ms 4.1ms 20.7MB 210ms 3ms wasmtime 5.0.0
wasm 2.rs 238ms 3.0ms 44.7MB 243ms 7ms node 16.19.0
wasm 1.rs 244ms 12ms 53.3MB 243ms 13ms node 16.19.0
odin 2.odin 289ms 3.1ms 2.7MB 277ms 0ms odin 2023

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 4128ms 2.4ms 15.4MB 4110ms 3ms wasmedgec 0.11.2
wasm 7.rs 4266ms 34ms 16.0MB 4250ms 0ms wasmedgec 0.11.2
wasm 2.rs 4306ms 3.2ms 48.5MB 4323ms 10ms node 16.19.0
wasm 2.rs 4413ms 29ms 11.3MB 4400ms 0ms wasmtime 5.0.0
wasm 7.rs 4514ms 17ms 48.9MB 4530ms 10ms node 16.19.0
odin 1.odin 4615ms 1.6ms 2.7MB 4603ms 0ms odin 2023
wasm 7.rs 4629ms 19ms 11.3MB 4617ms 0ms wasmtime 5.0.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 1044ms 6.9ms 16.2MB 1030ms 0ms wasmedgec 0.11.2
wasm 7.rs 1068ms 1.1ms 15.7MB 1057ms 0ms wasmedgec 0.11.2
wasm 2.rs 1113ms 0.1ms 11.3MB 1100ms 0ms wasmtime 5.0.0
odin 1.odin 1156ms 0.1ms 2.1MB 1143ms 0ms odin 2023
wasm 2.rs 1157ms 5.8ms 48.5MB 1167ms 17ms node 16.19.0
wasm 7.rs 1162ms 0.5ms 11.3MB 1150ms 0ms wasmtime 5.0.0
wasm 7.rs 1206ms 3.5ms 48.8MB 1217ms 17ms node 16.19.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 268ms 0.8ms 14.9MB 257ms 0ms wasmedgec 0.11.2
wasm 7.rs 279ms 6.0ms 16.1MB 257ms 0ms wasmedgec 0.11.2
wasm 2.rs 288ms 6.1ms 9.4MB 277ms 0ms wasmtime 5.0.0
odin 1.odin 291ms 0.1ms 1.8MB 280ms 0ms odin 2023
wasm 7.rs 299ms 2.6ms 9.5MB 290ms 0ms wasmtime 5.0.0
wasm 2.rs 375ms 13ms 48.5MB 387ms 17ms node 16.19.0
wasm 7.rs 384ms 2.8ms 48.9MB 410ms 7ms node 16.19.0