Javascript VS Odin 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.)

binarytrees

Input: 18

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 1250ms 7.2ms 244.6MB 1580ms 50ms bun 0.5.1
javascript 1.js 3580ms 51ms 262.3MB 2593ms 1213ms node 19.5.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 120ms 5.4ms 103.9MB 103ms 13ms bun 0.5.1
javascript 1.js 165ms 1.7ms 69.5MB 153ms 17ms node 19.5.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 2275ms 38ms 81.0MB 2327ms 30ms node 19.5.0
javascript 1.js 3607ms 97ms 108.9MB 3583ms 27ms bun 0.5.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 212ms 5.6ms 62.5MB 187ms 13ms node 19.5.0
javascript 1.js 258ms 5.7ms 103.5MB 263ms 17ms bun 0.5.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 400ms 10ms 99.9MB 380ms 13ms bun 0.5.1
javascript 1.js 403ms 0.2ms 59.4MB 407ms 20ms node 19.5.0

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 183ms 1.0ms 52.9MB 190ms 3ms node 19.5.0
javascript 1.js 414ms 0.3ms 87.6MB 400ms 10ms bun 0.5.1

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
javascript 1.js 15ms 0.5ms 49.9MB 0ms 0ms bun 0.5.1
javascript 1.js 43ms 0.8ms 44.8MB 28ms 4ms node 19.5.0

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 136ms 2.6ms 88.9MB 73ms 53ms bun 0.5.1
javascript 1.js 3900ms 51ms 154.6MB 1713ms 353ms node 19.5.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.bun.js 87ms 5.3ms 74.2MB 23ms 27ms bun 0.5.1
javascript 1.js 373ms 19ms 70.1MB 350ms 83ms node 19.5.0

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 131ms 1.3ms 92.3MB 110ms 7ms bun 0.5.1
javascript 1.js 170ms 1.6ms 75.5MB 147ms 20ms node 19.5.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 722ms 0.6ms 257.6MB 697ms 47ms bun 0.5.1
javascript 1.js 1074ms 7.9ms 281.7MB 1037ms 103ms node 19.5.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 275ms 3.5ms 1.3MB 263ms 0ms odin 2023
javascript 2.js 376ms 2.0ms 54.6MB 363ms 3ms node 19.5.0
javascript 1.js 558ms 5.7ms 142.4MB 547ms 30ms bun 0.5.1
javascript 2.js 792ms 5.3ms 109.3MB 800ms 13ms bun 0.5.1
javascript 1.js 1034ms 5.1ms 61.8MB 1013ms 10ms node 19.5.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 820ms 9.6ms 1.2MB 807ms 0ms odin 2023
javascript 2.js 1014ms 6.1ms 61.5MB 990ms 17ms node 19.5.0
javascript 1.js 1587ms 8.0ms 164.9MB 1607ms 23ms bun 0.5.1
javascript 2.js 2293ms 13ms 120.6MB 2303ms 10ms bun 0.5.1
javascript 1.js 2965ms 7.7ms 62.1MB 2940ms 17ms node 19.5.0

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 112ms 0.5ms 1.2MB 100ms 0ms odin 2023
javascript 2.js 203ms 3.7ms 49.1MB 193ms 3ms node 19.5.0
javascript 1.js 296ms 6.1ms 117.4MB 287ms 17ms bun 0.5.1
javascript 1.js 376ms 2.1ms 49.6MB 367ms 3ms node 19.5.0
javascript 2.js 429ms 10ms 102.0MB 440ms 17ms bun 0.5.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 735ms 6.0ms 153.3MB 813ms 30ms bun 0.5.1
javascript 1.js 784ms 10ms 121.8MB 803ms 43ms node 19.5.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 169ms 5.3ms 104.0MB 147ms 23ms bun 0.5.1
javascript 1.js 230ms 5.3ms 90.0MB 203ms 37ms node 19.5.0

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1-i.odin 529ms 0.2ms 1.2MB 520ms 0ms odin 2023
javascript 6.js 606ms 7.3ms 47.3MB 593ms 0ms node 19.5.0
javascript 6.js 1009ms 0.7ms 68.0MB 1000ms 10ms bun 0.5.1
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
odin 1-i.odin 56ms 2.3ms 1.2MB 50ms 0ms odin 2023
javascript 6.js 107ms 2.6ms 47.4MB 93ms 3ms node 19.5.0
javascript 6.js 121ms 0.7ms 61.9MB 113ms 7ms bun 0.5.1
odin 1.odin 290ms 0.2ms 1.2MB 280ms 0ms odin 2023

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 3026ms 3.2ms 102.2MB 3037ms 27ms bun 0.5.1
javascript 1.js 3297ms 5.2ms 51.4MB 3300ms 10ms node 19.5.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 1.js 785ms 4.4ms 106.8MB 790ms 17ms bun 0.5.1
javascript 1.js 872ms 6.1ms 50.0MB 873ms 3ms node 19.5.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 3.js timeout 0.0ms 79.0MB 4980ms 20ms node 19.5.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 3.js 1552ms 2.5ms 62.3MB 1543ms 17ms node 19.5.0

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 2751ms 43ms 68.9MB 5193ms 17ms node 19.5.0
odin 1.odin 4615ms 1.6ms 2.7MB 4603ms 0ms odin 2023

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
javascript 6-m.js 835ms 6.6ms 68.8MB 1467ms 23ms node 19.5.0
odin 1.odin 1156ms 0.1ms 2.1MB 1143ms 0ms odin 2023

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 291ms 0.1ms 1.8MB 280ms 0ms odin 2023
javascript 6.js 404ms 15ms 66.5MB 533ms 23ms node 19.5.0