Results for 38 of 40 languages from this run on actest1.

Unavailable in this run: Hack, Lisp. Follow the run link for failure details.

Odin VS Java benchmarks

Current benchmark data was generated on Sun Sep 27 2026, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][4 cores] Intel(R) Core(TM) i7-3687U CPU @ 2.10GHz (Model 58)

* -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
java 2.java 782ms 124ms 569.1MB 957ms 133ms openjdk 21.0.12
java 2.java 1276ms 44ms 1086.4MB 900ms 603ms openjdk/zgc 21.0.12
odin 1.odin 3460ms 34ms 49.6MB 3430ms 13ms odin 2024

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2.java 192ms 18ms 167.6MB 260ms 27ms openjdk 21.0.12
odin 1.odin 329ms 60ms 7.5MB 320ms 0ms odin 2024
java 2.java 378ms 84ms 239.8MB 267ms 200ms openjdk/zgc 21.0.12

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 1.6ms 0.4ms 1.4MB 0ms 0ms odin 2024
java 1.java 93ms 5.3ms 44.3MB 116ms 12ms openjdk 21.0.12
java 1.java 165ms 3.2ms 42.8MB 128ms 88ms openjdk/zgc 21.0.12

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 244ms 2.4ms 1.4MB 233ms 0ms odin 2024

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 701ms 0.5ms 1.4MB 690ms 0ms odin 2024

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 119ms 9.7ms 1.4MB 107ms 0ms odin 2024

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 384ms 2.2ms 4.6MB 367ms 0ms odin 2024
java 1b.java 1741ms 7.7ms 54.5MB 1907ms 20ms openjdk 21.0.12
java 1b.java 1833ms 34ms 49.0MB 1920ms 97ms openjdk/zgc 21.0.12
java 1a.java 1933ms 27ms 55.2MB 2107ms 17ms openjdk 21.0.12
java 1a.java 1982ms 11ms 50.0MB 2060ms 93ms openjdk/zgc 21.0.12
java 1.java 2013ms 85ms 287.1MB 2137ms 60ms openjdk 21.0.12
java 1.java 2603ms 83ms 838.3MB 2237ms 527ms openjdk/zgc 21.0.12
java 2.java timeout (120s) — — — — openjdk 21.0.12
java 2.java timeout (120s) — — — — openjdk/zgc 21.0.12

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 20ms 0.6ms 1.4MB 10ms 0ms odin 2024
java 1-m.java 257ms 5.0ms 78.3MB 387ms 23ms openjdk 21.0.12
java 1a-m.java 258ms 8.5ms 50.5MB 423ms 17ms openjdk 21.0.12
java 1b-m.java 268ms 33ms 50.4MB 433ms 27ms openjdk 21.0.12
java 1a-m.java 339ms 1.1ms 47.7MB 423ms 100ms openjdk/zgc 21.0.12
java 1b-m.java 359ms 14ms 48.1MB 470ms 90ms openjdk/zgc 21.0.12
java 1.java 366ms 9.1ms 114.7MB 393ms 117ms openjdk/zgc 21.0.12
java 2.java 46770ms 782ms 412.7MB 49647ms 290ms openjdk 21.0.12
java 2.java 47223ms 457ms 4207.8MB 47620ms 2560ms openjdk/zgc 21.0.12

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1-i.odin 552ms 2.8ms 1.4MB 540ms 0ms odin 2024
odin 1.odin 627ms 4.8ms 1.4MB 613ms 0ms odin 2024
java 1.java 836ms 7.8ms 45.3MB 903ms 20ms openjdk 21.0.12
java 1.java 948ms 8.1ms 42.6MB 943ms 97ms openjdk/zgc 21.0.12
java 2.java 2391ms 105ms 668.4MB 2600ms 133ms openjdk 21.0.12
java 2.java 4242ms 39ms 2140.1MB 3463ms 1093ms openjdk/zgc 21.0.12

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1-i.odin 63ms 3.8ms 1.3MB 50ms 0ms odin 2024
odin 1.odin 68ms 2.0ms 1.4MB 57ms 0ms odin 2024
java 1-m.java 192ms 4.7ms 45.4MB 267ms 23ms openjdk 21.0.12
java 1.java 284ms 11ms 45.1MB 267ms 110ms openjdk/zgc 21.0.12
java 2-m.java 470ms 6.5ms 319.0MB 713ms 53ms openjdk 21.0.12
java 2.java 889ms 1.9ms 558.5MB 850ms 327ms openjdk/zgc 21.0.12

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 950ms 10ms 40.6MB 927ms 7ms odin 2024
java 1.java 1105ms 7.1ms 117.6MB 1193ms 27ms openjdk 21.0.12
java 1.java 1321ms 17ms 111.7MB 1293ms 140ms openjdk/zgc 21.0.12
java 2.java 1354ms 46ms 57.9MB 1457ms 20ms openjdk 21.0.12
odin 2.odin 1354ms 33ms 6.4MB 1340ms 0ms odin 2024
java 2.java 1474ms 28ms 53.3MB 1470ms 117ms openjdk/zgc 21.0.12

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
odin 1.odin 169ms 5.7ms 11.4MB 157ms 0ms odin 2024
odin 2.odin 260ms 1.9ms 2.7MB 250ms 0ms odin 2024
java 1.java 315ms 5.1ms 65.5MB 413ms 17ms openjdk 21.0.12
java 2.java 395ms 1.2ms 48.3MB 503ms 10ms openjdk 21.0.12
java 1.java 431ms 36ms 60.2MB 433ms 113ms openjdk/zgc 21.0.12
java 2.java 475ms 3.8ms 47.7MB 473ms 113ms openjdk/zgc 21.0.12

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 6269ms 79ms 47.7MB 24327ms 20ms openjdk 21.0.12
java 2-m.java 6422ms 61ms 45.2MB 24347ms 163ms openjdk/zgc 21.0.12
odin 1.odin 11033ms 17ms 2.9MB 11017ms 0ms odin 2024

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1680ms 11ms 46.0MB 6267ms 40ms openjdk 21.0.12
java 2-m.java 1805ms 63ms 44.1MB 6343ms 120ms openjdk/zgc 21.0.12
odin 1.odin 2767ms 10ms 2.1MB 2753ms 0ms odin 2024

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 551ms 4.8ms 48.2MB 1853ms 20ms openjdk 21.0.12
java 2-m.java 646ms 7.1ms 45.7MB 1900ms 103ms openjdk/zgc 21.0.12
odin 1.odin 698ms 2.3ms 1.8MB 687ms 0ms odin 2024