Odin VS Javascript benchmarks

Current benchmark data was generated on Wed Sep 28 2022, 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 1.7ms 0.5ms 1.6MB 0ms 0ms odin 2022
javascript 1.js 15ms 0.4ms 50.6MB 0ms 0ms bun 0.1.13
javascript 1.js 55ms 0.4ms 41.9MB 38ms 4ms node 18.9.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 182ms 0.9ms 1.9MB 170ms 0ms odin 2022
javascript 2.js 520ms 1.4ms 103.6MB 530ms 10ms bun 0.1.13
javascript 1.js 553ms 3.5ms 138.9MB 550ms 23ms bun 0.1.13
javascript 2.js 793ms 2.4ms 60.7MB 783ms 0ms node 18.9.1
javascript 1.js 1144ms 2.1ms 61.2MB 1123ms 10ms node 18.9.1

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 542ms 0.4ms 1.9MB 530ms 0ms odin 2022
javascript 2.js 1498ms 8.1ms 103.7MB 1510ms 17ms bun 0.1.13
javascript 1.js 1577ms 10ms 166.8MB 1607ms 30ms bun 0.1.13
javascript 2.js 2217ms 24ms 62.5MB 2197ms 13ms node 18.9.1
javascript 1.js 3272ms 13ms 61.3MB 3257ms 3ms node 18.9.1

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 86ms 2.6ms 0.9MB 73ms 0ms odin 2022
javascript 2.js 268ms 1.4ms 97.0MB 263ms 13ms bun 0.1.13
javascript 1.js 284ms 1.6ms 119.2MB 273ms 20ms bun 0.1.13
javascript 2.js 410ms 2.2ms 52.1MB 393ms 10ms node 18.9.1
javascript 1.js 445ms 1.5ms 49.3MB 423ms 10ms node 18.9.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 626ms 6.2ms 46.9MB 610ms 7ms node 18.9.1
javascript 6.js 1062ms 1.4ms 63.3MB 1050ms 7ms bun 0.1.13
odin 1.odin 2503ms 2.1ms 0.9MB 2490ms 0ms odin 2022

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6.js 122ms 1.0ms 48.6MB 107ms 3ms node 18.9.1
javascript 6.js 125ms 1.6ms 65.2MB 113ms 7ms bun 0.1.13
odin 1.odin 253ms 0.5ms 0.9MB 243ms 0ms odin 2022

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 710ms 43ms 40.5MB 687ms 10ms odin 2022
odin 2.odin 1162ms 6.5ms 6.3MB 1147ms 0ms odin 2022

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 123ms 4.6ms 11.4MB 110ms 0ms odin 2022
odin 2.odin 284ms 1.6ms 2.9MB 273ms 0ms odin 2022

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2766ms 9.8ms 71.1MB 5217ms 23ms node 18.9.1
odin 1.odin 4620ms 1.3ms 2.9MB 4603ms 0ms odin 2022

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 862ms 6.6ms 74.2MB 1517ms 37ms node 18.9.1
odin 1.odin 1158ms 1.0ms 2.4MB 1150ms 0ms odin 2022

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 292ms 0.1ms 1.9MB 277ms 0ms odin 2022
javascript 6.js 400ms 11ms 67.5MB 573ms 20ms node 18.9.1