Acton VS Java benchmarks

Current benchmark data was generated on Mon Mar 31 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 446ms 6.6ms 574.3MB 540ms 80ms openjdk 21
java 2-m.java 461ms 12ms 639.3MB 650ms 120ms graal/jvm 17.0.8
java 2.java 467ms 4.6ms 626.3MB 577ms 97ms openjdk 23
java 2.java 1242ms 10ms 1063.4MB 587ms 813ms openjdk/zgc 21
acton 1.act timeout 0.0ms 67.0MB 5977ms 77ms actonc 0.24.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 122ms 0.5ms 168.2MB 157ms 33ms openjdk 21
java 2-m.java 126ms 6.9ms 98.0MB 163ms 30ms openjdk 23
java 2-m.java 147ms 7.7ms 226.3MB 220ms 57ms graal/jvm 17.0.8
java 2.java 305ms 2.4ms 241.7MB 147ms 210ms openjdk/zgc 21
acton 1.act 832ms 29ms 12.1MB 970ms 70ms actonc 0.24.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 261ms 7.1ms 7.1MB 230ms 70ms actonc 0.24.1
java 1-m.java 610ms 52ms 266.2MB 1650ms 67ms openjdk 21
java 1-m.java 611ms 12ms 371.3MB 1183ms 107ms graal/jvm 17.0.8
java 1-m.java 662ms 27ms 244.0MB 1750ms 73ms openjdk 23
java 1-m.java 959ms 39ms 495.7MB 1580ms 417ms openjdk/zgc 21

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 97ms 12ms 5.4MB 77ms 30ms actonc 0.24.1
java 1-m.java 296ms 14ms 226.0MB 593ms 63ms graal/jvm 17.0.8
java 1-m.java 327ms 2.6ms 195.7MB 893ms 57ms openjdk 21
java 1-m.java 384ms 14ms 126.9MB 1043ms 53ms openjdk 23
java 1-m.java 496ms 4.6ms 214.8MB 960ms 220ms openjdk/zgc 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 3.6ms 0.2ms 3.9MB 0ms 0ms actonc 0.24.1
java 1.java 61ms 2.2ms 52.6MB 64ms 20ms graal/jvm 17.0.8
java 1.java 68ms 7.8ms 43.6MB 76ms 12ms openjdk 21
java 1.java 72ms 4.4ms 44.7MB 78ms 16ms openjdk 23
java 1.java 195ms 7.0ms 43.0MB 86ms 138ms openjdk/zgc 21

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 395ms 3.2ms 679.6MB 470ms 87ms openjdk 21
java 1.java 403ms 1.6ms 543.2MB 493ms 93ms openjdk 23
java 1-m.java 412ms 16ms 637.2MB 607ms 107ms graal/jvm 17.0.8
java 1.java 1076ms 3.5ms 966.1MB 440ms 750ms openjdk/zgc 21
acton 1.act 3219ms 15ms 101.8MB 3503ms 50ms actonc 0.24.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 164ms 2.5ms 206.3MB 230ms 47ms openjdk 21
java 1-m.java 165ms 2.0ms 158.9MB 240ms 40ms openjdk 23
java 1-m.java 223ms 6.9ms 254.1MB 370ms 57ms graal/jvm 17.0.8
java 1.java 415ms 11ms 341.7MB 217ms 273ms openjdk/zgc 21
acton 1.act 691ms 24ms 30.4MB 727ms 23ms actonc 0.24.1

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 383ms 7.9ms 114.9MB 430ms 27ms openjdk 21
java 1.java 389ms 4.7ms 118.3MB 433ms 23ms openjdk 23
java 1.java 557ms 11ms 112.8MB 463ms 167ms openjdk/zgc 21
java 1-m.java 598ms 27ms 233.2MB 870ms 70ms graal/jvm 17.0.8
java 2.java 773ms 7.9ms 57.6MB 830ms 17ms openjdk 21
java 2.java 778ms 4.5ms 60.5MB 830ms 20ms openjdk 23
java 2.java 853ms 16ms 53.4MB 783ms 143ms openjdk/zgc 21
java 2-m.java 1372ms 31ms 247.6MB 2460ms 100ms graal/jvm 17.0.8
acton 1.act timeout 0.0ms 560.9MB 6817ms 97ms actonc 0.24.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 153ms 2.7ms 68.5MB 197ms 23ms openjdk 23
java 1.java 154ms 2.2ms 64.7MB 207ms 17ms openjdk 21
java 1-m.java 206ms 11ms 137.5MB 283ms 50ms graal/jvm 17.0.8
java 2.java 254ms 2.5ms 49.8MB 317ms 17ms openjdk 21
java 2.java 263ms 5.2ms 50.7MB 313ms 17ms openjdk 23
java 1.java 279ms 5.2ms 61.5MB 200ms 143ms openjdk/zgc 21
java 2.java 368ms 2.4ms 47.7MB 303ms 143ms openjdk/zgc 21
java 2-m.java 474ms 5.0ms 145.4MB 840ms 60ms graal/jvm 17.0.8
acton 1.act 2313ms 3.9ms 192.3MB 2840ms 43ms actonc 0.24.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1-m.act 2906ms 70ms 6.6MB 2733ms 2017ms actonc 0.24.1
java 1.java 3176ms 11ms 442.6MB 3620ms 87ms graal/jvm 17.0.8
java 1.java 3621ms 96ms 430.3MB 4470ms 113ms openjdk 23
java 1.java 3656ms 83ms 353.4MB 4533ms 97ms openjdk 21
java 1.java timeout 0.0ms 1831.4MB 4633ms 1227ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 881ms 8.8ms 441.3MB 1233ms 80ms graal/jvm 17.0.8
acton 1-m.act 884ms 28ms 5.5MB 803ms 650ms actonc 0.24.1
java 1-m.java 988ms 25ms 422.8MB 1780ms 93ms openjdk 21
java 1-m.java 1002ms 24ms 437.7MB 1777ms 103ms openjdk 23
java 1.java 2030ms 37ms 1345.0MB 1667ms 1083ms openjdk/zgc 21