OCaml VS Odin benchmarks

Current benchmark data was generated on Mon Oct 03 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 1.ml 3996ms 16ms 120.6MB 3963ms 20ms ocaml 4.14.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 1.ml 268ms 3.9ms 17.4MB 253ms 0ms ocaml 4.14.0

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 2.ml 3944ms 24ms 2.4MB 3930ms 0ms ocaml 4.14.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 2.ml 326ms 0.9ms 2.5MB 320ms 0ms ocaml 4.14.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 6.ml 424ms 0.4ms 25.3MB 403ms 7ms ocaml 4.14.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 6.ml 47ms 2.5ms 5.9MB 33ms 0ms ocaml 4.14.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.9ms 0.9ms 0.9MB 0ms 0ms odin 2022
ocaml 1.ml 2.3ms 0.7ms 2.5MB 0ms 0ms ocaml 4.14.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 149ms 4.0ms 1.8MB 140ms 0ms odin 2022
ocaml 1.ml 238ms 0.1ms 6.0MB 230ms 0ms ocaml 4.14.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 435ms 4.8ms 1.8MB 427ms 0ms odin 2022
ocaml 1.ml 706ms 0.9ms 5.9MB 690ms 0ms ocaml 4.14.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 66ms 0.3ms 0.9MB 60ms 0ms odin 2022
ocaml 1.ml 105ms 1.1ms 5.2MB 93ms 0ms ocaml 4.14.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 1.ml 1492ms 4.5ms 62.8MB 1460ms 13ms ocaml 4.14.0
ocaml 2.ml 2545ms 6.5ms 71.3MB 2520ms 10ms ocaml 4.14.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 1.ml 192ms 1.8ms 18.6MB 170ms 3ms ocaml 4.14.0
ocaml 2.ml 432ms 3.0ms 23.6MB 413ms 0ms ocaml 4.14.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 1.ml 470ms 0.5ms 2.5MB 460ms 0ms ocaml 4.14.0
odin 1.odin 2504ms 2.8ms 0.9MB 2493ms 0ms odin 2022

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 1.ml 51ms 0.8ms 2.4MB 40ms 0ms ocaml 4.14.0
odin 1.odin 254ms 0.9ms 0.8MB 240ms 0ms odin 2022

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 731ms 17ms 40.6MB 703ms 10ms odin 2022
odin 2.odin 1218ms 9.6ms 6.4MB 1207ms 3ms odin 2022
ocaml 1.ml 1988ms 8.5ms 556.0MB 1893ms 77ms ocaml 4.14.0
ocaml 2.ml 2288ms 25ms 20.2MB 2277ms 0ms ocaml 4.14.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 123ms 0.6ms 11.3MB 110ms 0ms odin 2022
odin 2.odin 304ms 3.0ms 2.8MB 293ms 0ms odin 2022
ocaml 1.ml 374ms 18ms 142.4MB 340ms 17ms ocaml 4.14.0
ocaml 2.ml 549ms 1.2ms 9.7MB 540ms 0ms ocaml 4.14.0

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 2.ml timeout 0.0ms 0.0MB 0ms 0ms ocaml 4.14.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ocaml 2.ml 683ms 3.0ms 49.9MB 663ms 7ms ocaml 4.14.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 4495ms 0.6ms 2.8MB 4483ms 0ms odin 2022
ocaml 2.ml timeout 0.0ms 0.0MB 0ms 0ms ocaml 4.14.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1127ms 0.6ms 2.1MB 1117ms 0ms odin 2022
ocaml 2.ml 1647ms 1.1ms 3.2MB 1640ms 0ms ocaml 4.14.0

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 284ms 1.0ms 1.8MB 273ms 0ms odin 2022
ocaml 2.ml 415ms 1.0ms 3.1MB 400ms 0ms ocaml 4.14.0