Elixir VS Java benchmarks

Current benchmark data was generated on Wed May 25 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -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.)

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2
java 1.java timeout 0.0ms 0.0MB 0ms 0ms loom 19

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
elixir 1.ex 520ms 11ms 48.2MB 520ms 67ms elixir 12.3.2
java 1-m.java 772ms 131ms 108.2MB 1330ms 67ms loom 19

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 733ms 22ms 216.6MB 1247ms 73ms openjdk 18.0.1
java 1-m.java 896ms 104ms 201.0MB 1567ms 90ms openjdk 19
java 1-m.java 1053ms 62ms 470.2MB 1490ms 343ms openjdk/zgc 18.0.1
java 1.java 1103ms 21ms 287.6MB 1343ms 123ms graal/jvm 17.0.3
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 399ms 27ms 110.3MB 660ms 27ms openjdk 18.0.1
java 1-m.java 437ms 8.2ms 115.3MB 727ms 30ms openjdk 19
java 1-m.java 525ms 9.3ms 212.9MB 710ms 180ms openjdk/zgc 18.0.1
java 1.java 726ms 13ms 187.2MB 630ms 87ms graal/jvm 17.0.3
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 79ms 1.8ms 61.3MB 73ms 18ms graal/jvm 17.0.3
java 1.java 81ms 2.9ms 38.9MB 82ms 10ms openjdk 18.0.1
java 1.java 85ms 4.6ms 38.3MB 78ms 14ms openjdk 19
java 1.java 131ms 1.4ms 38.7MB 86ms 58ms openjdk/zgc 18.0.1
elixir 1.ex 225ms 3.7ms 49.0MB 226ms 44ms elixir 12.3.2

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2
java 1.java timeout 0.0ms 0.0MB 0ms 0ms graal/jvm 17.0.3
java 1.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 18.0.1
java 1.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 19
java 1.java timeout 0.0ms 0.0MB 0ms 0ms openjdk/zgc 18.0.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
elixir 1.ex 1181ms 4.3ms 48.1MB 1160ms 153ms elixir 12.3.2
java 1.java 1559ms 24ms 379.5MB 1990ms 140ms graal/jvm 17.0.3
java 1.java 1649ms 6.5ms 261.4MB 1943ms 73ms openjdk 18.0.1
java 1.java 1663ms 16ms 262.7MB 2003ms 97ms openjdk 19
java 1.java 2164ms 24ms 984.4MB 2187ms 707ms openjdk/zgc 18.0.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 4400ms 28ms 115.2MB 8420ms 57ms graal/jvm 17.0.3
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2
java 2.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 18.0.1
java 2.java timeout 0.0ms 0.0MB 0ms 0ms openjdk 19
java 2.java timeout 0.0ms 0.0MB 0ms 0ms openjdk/zgc 18.0.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1262ms 17ms 114.8MB 2297ms 53ms graal/jvm 17.0.3
java 2-m.java 1651ms 80ms 42.6MB 3087ms 23ms openjdk 19
java 2-m.java 2110ms 38ms 40.7MB 3980ms 13ms openjdk 18.0.1
java 2-m.java 2212ms 31ms 40.7MB 4127ms 67ms openjdk/zgc 18.0.1
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 522ms 28ms 40.2MB 907ms 13ms openjdk 19
java 2-m.java 634ms 6.8ms 39.1MB 1107ms 13ms openjdk 18.0.1
java 2-m.java 710ms 20ms 38.6MB 1183ms 53ms openjdk/zgc 18.0.1
java 2.java 755ms 14ms 104.2MB 733ms 37ms graal/jvm 17.0.3
elixir 1.ex timeout 0.0ms 0.0MB 0ms 0ms elixir 12.3.2