Java VS Acton benchmarks

Current benchmark data was generated on Tue Dec 31 2024, 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 428ms 6.0ms 574.2MB 503ms 83ms openjdk 21
java 2-m.java 448ms 5.4ms 648.6MB 620ms 120ms graal/jvm 17.0.8
java 2.java 451ms 8.7ms 650.1MB 557ms 87ms openjdk 23
java 2.java 1140ms 6.2ms 1085.8MB 540ms 753ms openjdk/zgc 21
acton 1.act timeout 0.0ms 68.8MB 5927ms 67ms actonc 0.24.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 117ms 3.3ms 167.6MB 147ms 30ms openjdk 21
java 2.java 122ms 6.2ms 98.2MB 143ms 33ms openjdk 23
java 2-m.java 153ms 9.8ms 226.4MB 223ms 60ms graal/jvm 17.0.8
java 2.java 289ms 1.8ms 241.5MB 147ms 187ms openjdk/zgc 21
acton 1.act 794ms 30ms 13.9MB 923ms 60ms actonc 0.24.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 258ms 21ms 7.0MB 237ms 60ms actonc 0.24.1
java 1-m.java 570ms 13ms 400.4MB 1093ms 103ms graal/jvm 17.0.8
java 1-m.java 603ms 36ms 265.8MB 1603ms 53ms openjdk 21
java 1-m.java 638ms 35ms 227.5MB 1663ms 60ms openjdk 23
java 1-m.java 959ms 5.3ms 553.4MB 1583ms 433ms openjdk/zgc 21

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 90ms 2.2ms 7.2MB 73ms 33ms actonc 0.24.1
java 1-m.java 295ms 20ms 230.9MB 577ms 60ms graal/jvm 17.0.8
java 1-m.java 325ms 28ms 178.0MB 870ms 47ms openjdk 21
java 1-m.java 338ms 18ms 111.1MB 923ms 40ms openjdk 23
java 1-m.java 473ms 26ms 215.3MB 917ms 210ms openjdk/zgc 21

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 859ms 20ms 100.0MB 3133ms 30ms graal/jvm 17.0.8
java 1-m.java 901ms 28ms 48.5MB 3350ms 20ms openjdk 21
java 1-m.java 939ms 5.5ms 50.3MB 3437ms 33ms openjdk 23
java 1-m.java 1000ms 15ms 46.4MB 3263ms 133ms openjdk/zgc 21

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 175ms 16ms 48.3MB 470ms 17ms openjdk 21
java 1-m.java 187ms 15ms 50.4MB 493ms 17ms openjdk 23
java 1-m.java 195ms 15ms 99.7MB 530ms 43ms graal/jvm 17.0.8
java 1-m.java 282ms 16ms 47.5MB 453ms 127ms openjdk/zgc 21

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 415ms 6.6ms 107.3MB 563ms 50ms graal/jvm 17.0.8
java 4.java 431ms 15ms 47.5MB 517ms 20ms openjdk 21
java 4.java 439ms 9.7ms 49.3MB 523ms 17ms openjdk 23
java 4.java 541ms 2.5ms 44.9MB 507ms 133ms openjdk/zgc 21

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 4.java 116ms 0.7ms 46.4MB 150ms 17ms openjdk 21
java 4.java 117ms 0.9ms 47.5MB 153ms 17ms openjdk 23
java 4-m.java 132ms 7.0ms 97.4MB 180ms 37ms graal/jvm 17.0.8
java 4.java 226ms 9.1ms 43.9MB 153ms 130ms 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.3ms 4.1MB 0ms 0ms actonc 0.24.1
java 1.java 61ms 1.3ms 58.6MB 60ms 20ms graal/jvm 17.0.8
java 1.java 69ms 2.9ms 44.7MB 66ms 14ms openjdk 23
java 1.java 69ms 1.0ms 43.8MB 72ms 10ms openjdk 21
java 1.java 174ms 5.3ms 44.5MB 80ms 116ms openjdk/zgc 21

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 957ms 65ms 126.8MB 3243ms 40ms openjdk 21
java 3-m.java 1032ms 55ms 183.8MB 3450ms 77ms graal/jvm 17.0.8
java 3-m.java 1036ms 18ms 156.5MB 3543ms 47ms openjdk 23
java 3-m.java 1340ms 52ms 178.8MB 4223ms 190ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 311ms 28ms 87.9MB 907ms 17ms openjdk 23
java 3-m.java 328ms 29ms 100.2MB 973ms 30ms openjdk 21
java 3-m.java 356ms 16ms 139.7MB 963ms 53ms graal/jvm 17.0.8
java 3-m.java 401ms 8.3ms 100.0MB 823ms 167ms openjdk/zgc 21

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1b.java 1088ms 25ms 55.9MB 1183ms 20ms openjdk 23
java 1b.java 1099ms 9.8ms 54.1MB 1203ms 10ms openjdk 21
java 1b.java 1140ms 3.0ms 114.0MB 1380ms 43ms graal/jvm 17.0.8
java 1.java 1186ms 11ms 134.8MB 1287ms 43ms graal/jvm 17.0.8
java 1b.java 1206ms 5.6ms 51.0MB 1187ms 130ms openjdk/zgc 21
java 1a.java 1561ms 13ms 54.8MB 1640ms 30ms openjdk 21
java 1a.java 1568ms 7.1ms 56.5MB 1640ms 33ms openjdk 23
java 1a.java 1588ms 7.8ms 104.9MB 1690ms 37ms graal/jvm 17.0.8
java 1.java 1614ms 17ms 299.9MB 1663ms 50ms openjdk 23
java 1.java 1619ms 19ms 202.2MB 1683ms 37ms openjdk 21
java 1a.java 1691ms 11ms 53.0MB 1660ms 133ms openjdk/zgc 21
java 1.java 2222ms 9.3ms 839.9MB 1657ms 657ms openjdk/zgc 21
java 2.java timeout 0.0ms 680.4MB 5250ms 110ms openjdk 21
java 2.java timeout 0.0ms 804.6MB 5267ms 103ms openjdk 23
java 2.java timeout 0.0ms 3394.0MB 3423ms 1930ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1b-m.java 168ms 7.4ms 51.1MB 263ms 17ms openjdk 23
java 1b-m.java 170ms 15ms 49.4MB 277ms 13ms openjdk 21
java 1a-m.java 174ms 1.1ms 51.2MB 267ms 17ms openjdk 21
java 1-m.java 178ms 1.8ms 82.0MB 243ms 27ms openjdk 21
java 1-m.java 181ms 5.7ms 87.0MB 250ms 27ms openjdk 23
java 1a-m.java 183ms 9.6ms 53.2MB 283ms 17ms openjdk 23
java 1-m.java 188ms 1.2ms 117.5MB 273ms 50ms graal/jvm 17.0.8
java 1a-m.java 205ms 3.9ms 100.0MB 310ms 33ms graal/jvm 17.0.8
java 1b-m.java 215ms 23ms 105.6MB 353ms 43ms graal/jvm 17.0.8
java 1a.java 293ms 9.5ms 49.8MB 270ms 133ms openjdk/zgc 21
java 1b.java 303ms 9.4ms 49.6MB 287ms 133ms openjdk/zgc 21
java 1.java 319ms 10ms 114.2MB 250ms 153ms openjdk/zgc 21
java 2-m.java 516ms 21ms 556.8MB 793ms 73ms openjdk 21
java 2-m.java 532ms 10ms 751.9MB 800ms 93ms openjdk 23
java 2.java 1560ms 7.7ms 1436.9MB 800ms 1043ms openjdk/zgc 21

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 377ms 8.2ms 679.9MB 450ms 77ms openjdk 21
java 1.java 383ms 9.9ms 546.0MB 480ms 80ms openjdk 23
java 1-m.java 408ms 27ms 589.2MB 630ms 77ms graal/jvm 17.0.8
java 1.java 1004ms 16ms 1000.0MB 447ms 697ms openjdk/zgc 21
acton 1.act 3058ms 12ms 101.9MB 3330ms 47ms actonc 0.24.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 153ms 0.5ms 206.4MB 210ms 50ms openjdk 21
java 1-m.java 154ms 0.8ms 158.8MB 213ms 47ms openjdk 23
java 1-m.java 210ms 8.6ms 260.7MB 360ms 47ms graal/jvm 17.0.8
java 1.java 386ms 10ms 343.0MB 210ms 247ms openjdk/zgc 21
acton 1.act 676ms 47ms 32.3MB 707ms 20ms actonc 0.24.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 417ms 2.4ms 45.2MB 450ms 13ms openjdk 21
java 1.java 420ms 6.1ms 48.2MB 450ms 20ms openjdk 23
java 1.java 429ms 7.0ms 85.0MB 457ms 27ms graal/jvm 17.0.8
java 1.java 530ms 6.4ms 46.5MB 450ms 130ms openjdk/zgc 21
java 2.java 1166ms 4.4ms 571.8MB 1293ms 77ms openjdk 21
java 2.java 1187ms 9.7ms 717.8MB 1287ms 90ms openjdk 23
java 2.java 3101ms 57ms 2431.6MB 1560ms 1743ms openjdk/zgc 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 111ms 2.5ms 45.2MB 137ms 20ms openjdk 21
java 1.java 112ms 0.7ms 87.3MB 130ms 30ms graal/jvm 17.0.8
java 1.java 114ms 1.2ms 48.5MB 140ms 20ms openjdk 23
java 1.java 230ms 5.1ms 46.5MB 150ms 133ms openjdk/zgc 21
java 2-m.java 289ms 6.3ms 348.4MB 407ms 70ms openjdk 23
java 2-m.java 293ms 18ms 355.0MB 440ms 30ms openjdk 21
java 2.java 658ms 2.3ms 536.9MB 437ms 403ms openjdk/zgc 21

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 367ms 5.0ms 118.1MB 397ms 27ms openjdk 23
java 1.java 367ms 3.8ms 114.6MB 413ms 27ms openjdk 21
java 1.java 535ms 4.6ms 114.6MB 440ms 157ms openjdk/zgc 21
java 1-m.java 654ms 9.2ms 208.3MB 983ms 70ms graal/jvm 17.0.8
java 2.java 734ms 5.2ms 57.1MB 777ms 23ms openjdk 21
java 2.java 750ms 10ms 60.4MB 790ms 20ms openjdk 23
java 2.java 804ms 11ms 53.3MB 740ms 130ms openjdk/zgc 21
java 2-m.java 1277ms 30ms 265.2MB 2290ms 83ms graal/jvm 17.0.8
acton 1.act timeout 0.0ms 561.0MB 6733ms 113ms actonc 0.24.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1.java 140ms 4.3ms 68.2MB 177ms 17ms openjdk 23
java 1.java 151ms 8.4ms 65.3MB 200ms 17ms openjdk 21
java 1-m.java 210ms 26ms 127.6MB 297ms 50ms graal/jvm 17.0.8
java 2.java 244ms 4.8ms 50.3MB 297ms 20ms openjdk 21
java 2.java 249ms 5.7ms 50.9MB 290ms 20ms openjdk 23
java 1.java 264ms 1.7ms 63.3MB 193ms 133ms openjdk/zgc 21
java 2.java 348ms 11ms 49.4MB 273ms 137ms openjdk/zgc 21
java 2-m.java 489ms 42ms 151.7MB 883ms 47ms graal/jvm 17.0.8
acton 1.act 2260ms 73ms 229.8MB 2830ms 30ms 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 2853ms 97ms 8.6MB 2510ms 1970ms actonc 0.24.1
java 1.java 3054ms 20ms 378.6MB 3497ms 93ms graal/jvm 17.0.8
java 1.java 3512ms 55ms 352.2MB 4263ms 100ms openjdk 21
java 1.java 3516ms 17ms 467.6MB 4333ms 110ms openjdk 23
java 1.java 4911ms 83ms 1847.1MB 4407ms 1287ms openjdk/zgc 21

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1-m.act 811ms 6.4ms 5.8MB 710ms 577ms actonc 0.24.1
java 1-m.java 862ms 30ms 376.3MB 1213ms 93ms graal/jvm 17.0.8
java 1-m.java 946ms 37ms 351.6MB 1657ms 93ms openjdk 21
java 1-m.java 959ms 18ms 387.9MB 1673ms 93ms openjdk 23
java 1.java 1914ms 12ms 1374.3MB 1617ms 980ms openjdk/zgc 21

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3.java timeout 0.0ms 501.9MB 5477ms 97ms graal/jvm 17.0.8
java 3.java timeout 0.0ms 328.2MB 5333ms 50ms openjdk 21
java 3.java timeout 0.0ms 350.8MB 5360ms 57ms openjdk 23
java 3.java timeout 0.0ms 488.6MB 4940ms 307ms openjdk/zgc 21

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 3-m.java 749ms 10ms 130.7MB 1110ms 37ms openjdk 21
java 3-m.java 765ms 72ms 178.4MB 1157ms 47ms graal/jvm 17.0.8
java 3-m.java 770ms 25ms 134.3MB 1160ms 43ms openjdk 23
java 3.java 902ms 21ms 136.0MB 1070ms 167ms openjdk/zgc 21

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 1867ms 20ms 47.6MB 7143ms 20ms openjdk 21
java 2-m.java 1877ms 26ms 49.0MB 7130ms 20ms openjdk 23
java 2-m.java 1981ms 11ms 45.4MB 7137ms 137ms openjdk/zgc 21
java 2-m.java 2318ms 11ms 100.9MB 8233ms 47ms graal/jvm 17.0.8

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 557ms 2.8ms 48.4MB 1953ms 27ms openjdk 23
java 2-m.java 558ms 2.6ms 47.5MB 1963ms 23ms openjdk 21
java 2-m.java 676ms 7.0ms 45.6MB 1957ms 140ms openjdk/zgc 21
java 2-m.java 688ms 5.7ms 98.9MB 2293ms 57ms graal/jvm 17.0.8

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 2-m.java 229ms 5.7ms 48.4MB 670ms 23ms openjdk 23
java 2-m.java 238ms 14ms 47.6MB 693ms 20ms openjdk 21
java 2-m.java 281ms 23ms 101.8MB 823ms 40ms graal/jvm 17.0.8
java 2-m.java 346ms 3.4ms 47.1MB 667ms 133ms openjdk/zgc 21

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 1839ms 107ms 260.2MB 6950ms 100ms openjdk 21
java 1-m.java 2281ms 118ms 242.8MB 8683ms 107ms openjdk 23
java 1-m.java 2455ms 149ms 1194.8MB 7670ms 997ms openjdk/zgc 21

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
java 1-m.java 393ms 19ms 91.0MB 1263ms 60ms openjdk 23
java 1-m.java 413ms 23ms 131.0MB 1357ms 63ms openjdk 21
java 1-m.java 622ms 34ms 224.1MB 1667ms 243ms openjdk/zgc 21