Acton VS Java benchmarks

Current benchmark data was generated on Thu May 01 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
java 2.java 458ms 2.1ms 574.1MB 557ms 83ms openjdk 21
java 2.java 472ms 4.2ms 620.6MB 573ms 107ms openjdk 23
java 2-m.java 478ms 13ms 644.0MB 667ms 127ms graal/jvm 17.0.8
java 2.java 1199ms 18ms 1054.6MB 590ms 770ms openjdk/zgc 21
acton 1.act timeout 0.0ms 66.9MB 5943ms 87ms actonc 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 124ms 1.9ms 98.4MB 163ms 30ms openjdk 23
java 2-m.java 127ms 2.5ms 167.1MB 160ms 30ms openjdk 21
java 2-m.java 144ms 4.4ms 215.0MB 210ms 60ms graal/jvm 17.0.8
java 2.java 305ms 0.9ms 241.8MB 150ms 207ms openjdk/zgc 21
acton 1.act 824ms 27ms 12.0MB 960ms 70ms actonc 0.25.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 231ms 12ms 8.1MB 207ms 40ms actonc 0.25.0
java 1-m.java 581ms 19ms 279.4MB 1593ms 77ms openjdk 21
java 1-m.java 614ms 20ms 395.5MB 1180ms 120ms graal/jvm 17.0.8
java 1-m.java 646ms 62ms 236.6MB 1720ms 80ms openjdk 23
java 1-m.java 958ms 42ms 533.5MB 1653ms 420ms openjdk/zgc 21

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 90ms 15ms 6.0MB 73ms 13ms actonc 0.25.0
java 1-m.java 323ms 18ms 236.1MB 627ms 77ms graal/jvm 17.0.8
java 1-m.java 339ms 19ms 178.3MB 920ms 53ms openjdk 21
java 1-m.java 361ms 20ms 127.5MB 967ms 57ms openjdk 23
java 1-m.java 525ms 21ms 215.0MB 1033ms 227ms openjdk/zgc 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 3.8ms 0.3ms 3.9MB 0ms 0ms actonc 0.25.0
java 1.java 62ms 1.3ms 52.7MB 66ms 18ms graal/jvm 17.0.8
java 1.java 71ms 1.1ms 43.7MB 74ms 12ms openjdk 21
java 1.java 72ms 2.0ms 44.7MB 76ms 14ms openjdk 23
java 1.java 189ms 5.2ms 42.9MB 80ms 136ms openjdk/zgc 21

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 402ms 2.9ms 547.2MB 510ms 83ms openjdk 23
java 1.java 404ms 4.1ms 679.9MB 473ms 97ms openjdk 21
java 1-m.java 405ms 5.5ms 633.0MB 597ms 110ms graal/jvm 17.0.8
java 1.java 1035ms 24ms 958.9MB 473ms 707ms openjdk/zgc 21
acton 1.act 3256ms 12ms 84.6MB 3660ms 60ms actonc 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 163ms 2.7ms 158.7MB 237ms 47ms openjdk 23
java 1-m.java 165ms 0.4ms 207.1MB 237ms 37ms openjdk 21
java 1-m.java 214ms 5.9ms 253.7MB 350ms 67ms graal/jvm 17.0.8
java 1.java 420ms 20ms 341.6MB 217ms 277ms openjdk/zgc 21
acton 1.act 693ms 11ms 24.0MB 760ms 33ms actonc 0.25.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 402ms 2.3ms 118.6MB 447ms 23ms openjdk 23
java 1.java 410ms 1.4ms 114.9MB 463ms 20ms openjdk 21
java 1.java 580ms 9.2ms 112.8MB 480ms 170ms openjdk/zgc 21
java 1-m.java 624ms 34ms 271.5MB 903ms 70ms graal/jvm 17.0.8
java 2.java 781ms 2.9ms 57.3MB 840ms 17ms openjdk 21
java 2.java 782ms 2.8ms 60.3MB 833ms 23ms openjdk 23
java 2.java 841ms 5.2ms 53.3MB 770ms 140ms openjdk/zgc 21
java 2-m.java 1350ms 36ms 197.1MB 2433ms 97ms graal/jvm 17.0.8
acton 1.act timeout 0.0ms 561.0MB 6610ms 93ms actonc 0.25.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 154ms 0.3ms 68.1MB 200ms 20ms openjdk 23
java 1.java 162ms 5.3ms 65.0MB 217ms 20ms openjdk 21
java 1-m.java 205ms 14ms 137.8MB 287ms 43ms graal/jvm 17.0.8
java 2.java 259ms 1.4ms 50.0MB 323ms 17ms openjdk 21
java 2.java 262ms 7.0ms 50.4MB 310ms 17ms openjdk 23
java 1.java 287ms 3.4ms 61.6MB 210ms 147ms openjdk/zgc 21
java 2.java 370ms 1.9ms 47.3MB 310ms 143ms openjdk/zgc 21
java 2-m.java 472ms 2.1ms 145.4MB 833ms 63ms graal/jvm 17.0.8
acton 1.act 2441ms 6.0ms 192.4MB 2940ms 60ms actonc 0.25.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 3228ms 11ms 443.7MB 3627ms 103ms graal/jvm 17.0.8
acton 1-m.act 3448ms 37ms 6.8MB 3523ms 2430ms actonc 0.25.0
java 1.java 3700ms 73ms 442.1MB 4620ms 113ms openjdk 23
java 1.java 3741ms 9.8ms 385.9MB 4627ms 113ms openjdk 21
java 1.java timeout 0.0ms 1943.1MB 4667ms 1197ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 894ms 6.9ms 443.3MB 1253ms 90ms graal/jvm 17.0.8
acton 1-m.act 960ms 34ms 6.1MB 940ms 687ms actonc 0.25.0
java 1-m.java 987ms 25ms 365.4MB 1767ms 100ms openjdk 21
java 1-m.java 996ms 20ms 418.7MB 1797ms 107ms openjdk 23
java 1.java 1998ms 39ms 1350.6MB 1717ms 1037ms openjdk/zgc 21