Odin VS Javascript benchmarks

Current benchmark data was generated on Wed Jan 22 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
javascript 1-m.js 950ms 61ms 187.4MB 1437ms 247ms bun 1.1.45
javascript 1-m.js 1251ms 9.3ms 276.4MB 2177ms 160ms node 23.6.0
odin 1.odin 2328ms 19ms 49.5MB 2293ms 20ms odin 2024

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 95ms 0.8ms 79.4MB 77ms 23ms bun 1.1.45
javascript 1.js 127ms 2.0ms 82.4MB 117ms 33ms node 23.6.0
odin 1.odin 230ms 20ms 7.5MB 220ms 0ms odin 2024

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.2ms 0.1ms 1.5MB 0ms 0ms odin 2024
javascript 1.js 13ms 0.5ms 32.3MB 0ms 10ms bun 1.1.45
javascript 1.js 31ms 0.6ms 52.0MB 14ms 8ms node 23.6.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 145ms 1.9ms 1.6MB 133ms 0ms odin 2024
javascript 2.js 307ms 1.4ms 66.8MB 297ms 13ms node 23.6.0
javascript 1.js 559ms 2.7ms 64.5MB 543ms 13ms node 23.6.0
javascript 2.js 640ms 0.8ms 127.1MB 687ms 63ms bun 1.1.45
javascript 1.js 826ms 4.8ms 110.7MB 910ms 77ms bun 1.1.45

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 429ms 5.3ms 1.8MB 420ms 0ms odin 2024
javascript 2.js 840ms 3.3ms 72.4MB 823ms 17ms node 23.6.0
javascript 1.js 1586ms 6.0ms 71.4MB 1567ms 17ms node 23.6.0
javascript 2.js 1816ms 29ms 122.9MB 1960ms 60ms bun 1.1.45
javascript 1.js 2536ms 140ms 112.1MB 2847ms 137ms bun 1.1.45

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 66ms 0.6ms 1.6MB 57ms 0ms odin 2024
javascript 1.js 164ms 2.5ms 61.8MB 150ms 7ms node 23.6.0
javascript 2.js 164ms 0.9ms 60.8MB 157ms 10ms node 23.6.0
javascript 1.js 323ms 3.2ms 133.9MB 347ms 83ms bun 1.1.45
javascript 2.js 359ms 16ms 126.8MB 380ms 60ms bun 1.1.45

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 287ms 4.0ms 4.6MB 277ms 0ms odin 2024

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

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 352ms 0.6ms 1.5MB 340ms 0ms odin 2024
odin 1-i.odin 357ms 1.9ms 1.5MB 350ms 0ms odin 2024
javascript 6.js 459ms 2.4ms 59.7MB 447ms 7ms node 23.6.0
javascript 6.js 658ms 0.3ms 45.6MB 653ms 7ms bun 1.1.45

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1-i.odin 38ms 0.2ms 1.5MB 30ms 0ms odin 2024
odin 1.odin 38ms 1.1ms 1.5MB 27ms 0ms odin 2024
javascript 6.js 77ms 1.0ms 59.8MB 60ms 10ms node 23.6.0
javascript 6.js 85ms 2.1ms 45.4MB 83ms 3ms bun 1.1.45

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 273ms 12ms 40.6MB 253ms 0ms odin 2024
odin 2.odin 735ms 6.5ms 6.5MB 727ms 0ms odin 2024

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 53ms 2.0ms 11.3MB 40ms 0ms odin 2024
odin 2.odin 168ms 11ms 2.8MB 160ms 0ms odin 2024

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2158ms 5.7ms 116.7MB 8230ms 53ms node 23.6.0
odin 1.odin 3586ms 3.8ms 2.9MB 3577ms 0ms odin 2024

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 642ms 4.1ms 114.0MB 2290ms 50ms node 23.6.0
odin 1.odin 899ms 1.8ms 2.3MB 887ms 0ms odin 2024

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 227ms 0.7ms 1.9MB 213ms 0ms odin 2024
javascript 6-m.js 263ms 2.0ms 113.2MB 823ms 40ms node 23.6.0