Odin VS Wasm benchmarks

Current benchmark data was generated on Sun Jun 01 2025, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] AMD EPYC 7763 64-Core Processor (Model 1)

* -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

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 5.rs 1744ms 15ms 33.9MB 1727ms 10ms wasmtime 33.0.0
wasm 3.rs 1791ms 35ms 49.9MB 1760ms 13ms wasmtime 33.0.0
wasm 4.rs 1806ms 5.3ms 33.9MB 1783ms 10ms wasmtime 33.0.0
odin 1.odin 2307ms 6.3ms 49.5MB 2280ms 13ms odin 2024

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 5.rs 170ms 3.5ms 20.1MB 160ms 0ms wasmtime 33.0.0
wasm 3.rs 174ms 3.4ms 21.9MB 160ms 0ms wasmtime 33.0.0
wasm 4.rs 195ms 7.7ms 19.9MB 180ms 0ms wasmtime 33.0.0
odin 1.odin 221ms 4.9ms 7.5MB 207ms 0ms odin 2024

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.1ms 0.0ms 1.6MB 0ms 0ms odin 2024
wasm 1.rs 6.2ms 0.3ms 15.3MB 0ms 0ms wasmtime 33.0.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 91ms 1.0ms 17.7MB 80ms 0ms wasmtime 33.0.0
odin 1.odin 157ms 1.1ms 1.6MB 150ms 0ms odin 2024

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 253ms 2.5ms 17.6MB 240ms 0ms wasmtime 33.0.0
odin 1.odin 458ms 3.6ms 1.6MB 447ms 0ms odin 2024

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 47ms 0.4ms 17.5MB 37ms 0ms wasmtime 33.0.0
odin 1.odin 70ms 0.2ms 1.6MB 60ms 0ms odin 2024

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 286ms 0.5ms 4.6MB 280ms 0ms odin 2024
wasm 8.rs 832ms 3.3ms 21.1MB 817ms 0ms wasmtime 33.0.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 14ms 0.2ms 1.6MB 10ms 0ms odin 2024
wasm 8.rs 43ms 1.0ms 18.2MB 30ms 0ms wasmtime 33.0.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 354ms 2.5ms 1.5MB 343ms 0ms odin 2024
odin 1-i.odin 356ms 1.4ms 1.5MB 350ms 0ms odin 2024
wasm 1.rs 404ms 2.3ms 18.1MB 390ms 0ms wasmtime 33.0.0
wasm 2.rs 565ms 4.4ms 18.1MB 547ms 0ms wasmtime 33.0.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1-i.odin 38ms 0.3ms 1.5MB 30ms 0ms odin 2024
odin 1.odin 39ms 0.5ms 1.5MB 30ms 0ms odin 2024
wasm 1.rs 48ms 1.3ms 18.1MB 37ms 0ms wasmtime 33.0.0
wasm 2.rs 64ms 1.1ms 18.4MB 50ms 0ms wasmtime 33.0.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 267ms 7.1ms 40.5MB 253ms 7ms odin 2024
wasm 2.rs 373ms 4.4ms 22.9MB 357ms 0ms wasmtime 33.0.0
wasm 1.rs 454ms 1.1ms 57.0MB 440ms 0ms wasmtime 33.0.0
odin 2.odin 722ms 37ms 6.5MB 713ms 0ms odin 2024

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 56ms 4.6ms 11.3MB 47ms 0ms odin 2024
wasm 1.rs 94ms 1.3ms 27.7MB 80ms 0ms wasmtime 33.0.0
wasm 2.rs 95ms 0.6ms 19.2MB 80ms 0ms wasmtime 33.0.0
odin 2.odin 179ms 8.0ms 2.8MB 170ms 0ms odin 2024

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 3597ms 4.4ms 17.7MB 3583ms 0ms wasmtime 33.0.0
odin 1.odin 3598ms 2.4ms 2.9MB 3590ms 0ms odin 2024
wasm 7.rs 4900ms 7.4ms 17.7MB 4887ms 0ms wasmtime 33.0.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 902ms 1.5ms 2.3MB 890ms 0ms odin 2024
wasm 2.rs 905ms 1.7ms 18.2MB 890ms 0ms wasmtime 33.0.0
wasm 7.rs 1229ms 2.0ms 17.7MB 1217ms 0ms wasmtime 33.0.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 227ms 0.9ms 1.9MB 220ms 0ms odin 2024
wasm 2.rs 233ms 1.4ms 18.3MB 220ms 0ms wasmtime 33.0.0
wasm 7.rs 315ms 1.6ms 17.7MB 300ms 0ms wasmtime 33.0.0