All Java benchmarks

Current benchmark data was generated on Wed Mar 22 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

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

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.java 687ms 2.6ms 413.5MB 687ms 107ms openjdk 21
2.java 719ms 11ms 668.5MB 817ms 120ms graal/jvm 17.0.6
2.java 744ms 40ms 602.2MB 730ms 120ms openjdk 19
2.java 1343ms 53ms 1119.1MB 960ms 583ms openjdk/zgc 19

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.java 174ms 15ms 109.5MB 170ms 30ms openjdk 21
2.java 178ms 4.9ms 109.2MB 183ms 27ms openjdk 19
2.java 184ms 11ms 168.7MB 233ms 40ms graal/jvm 17.0.6
2.java 314ms 5.5ms 240.4MB 197ms 143ms openjdk/zgc 19

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.java 797ms 4.9ms 213.2MB 1367ms 93ms openjdk 21
1-m.java 802ms 7.0ms 261.7MB 1380ms 100ms graal/jvm 17.0.6
1-m.java 829ms 69ms 188.2MB 1467ms 60ms openjdk 19
1-m.java 1029ms 21ms 428.0MB 1493ms 317ms openjdk/zgc 19

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.java 408ms 37ms 181.2MB 680ms 43ms graal/jvm 17.0.6
1-m.java 474ms 9.7ms 118.1MB 790ms 37ms openjdk 19
1-m.java 478ms 13ms 117.4MB 793ms 40ms openjdk 21
1-m.java 540ms 7.7ms 207.3MB 767ms 153ms openjdk/zgc 19

fannkuch-redux

Input: 11

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.java 1667ms 31ms 91.4MB 3163ms 23ms graal/jvm 17.0.6
1-m.java 1730ms 27ms 44.2MB 3287ms 30ms openjdk 19
1-m.java 1737ms 56ms 43.9MB 3237ms 53ms openjdk/zgc 19
1-m.java 1785ms 22ms 41.8MB 3410ms 20ms openjdk 21

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.java 277ms 11ms 41.9MB 440ms 20ms openjdk 19
1-m.java 280ms 4.6ms 42.0MB 453ms 10ms openjdk 21
1-m.java 297ms 15ms 90.2MB 477ms 27ms graal/jvm 17.0.6
1-m.java 317ms 5.7ms 43.8MB 440ms 60ms openjdk/zgc 19

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
4.java 521ms 2.3ms 42.0MB 603ms 7ms openjdk 21
4.java 528ms 8.6ms 41.4MB 603ms 10ms openjdk 19
4.java 583ms 8.1ms 43.4MB 603ms 63ms openjdk/zgc 19
4.java 621ms 5.0ms 99.9MB 803ms 37ms graal/jvm 17.0.6

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
4.java 148ms 4.3ms 41.7MB 173ms 7ms openjdk 19
4.java 155ms 5.9ms 41.3MB 170ms 17ms openjdk 21
4.java 164ms 14ms 89.1MB 200ms 20ms graal/jvm 17.0.6
4.java 197ms 1.0ms 41.0MB 180ms 43ms openjdk/zgc 19

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 75ms 3.1ms 65.8MB 74ms 8ms graal/jvm 17.0.6
1.java 81ms 4.6ms 40.7MB 78ms 12ms openjdk 21
1.java 88ms 9.1ms 42.0MB 82ms 8ms openjdk 19
1.java 125ms 1.8ms 41.2MB 76ms 54ms openjdk/zgc 19

knucleotide

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3-m.java 1465ms 35ms 115.7MB 2717ms 37ms openjdk 21
3-m.java 1470ms 36ms 116.1MB 2667ms 43ms openjdk 19
3-m.java 1511ms 50ms 170.7MB 2790ms 53ms graal/jvm 17.0.6
3-m.java 1948ms 9.3ms 173.6MB 3420ms 143ms openjdk/zgc 19

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3-m.java 448ms 22ms 87.8MB 747ms 33ms openjdk 21
3-m.java 456ms 12ms 136.5MB 760ms 30ms graal/jvm 17.0.6
3-m.java 492ms 30ms 95.1MB 723ms 93ms openjdk/zgc 19
3-m.java 556ms 6.0ms 96.7MB 947ms 27ms openjdk 19

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1b.java 1420ms 12ms 49.0MB 1510ms 17ms openjdk 21
1b.java 1424ms 3.2ms 50.1MB 1513ms 17ms openjdk 19
1b.java 1460ms 6.5ms 47.3MB 1500ms 57ms openjdk/zgc 19
1b.java 1471ms 12ms 110.2MB 1693ms 27ms graal/jvm 17.0.6
1a.java 1550ms 3.0ms 49.1MB 1643ms 7ms openjdk 21
1a.java 1553ms 21ms 48.6MB 1640ms 20ms openjdk 19
1a.java 1576ms 3.7ms 100.0MB 1663ms 33ms graal/jvm 17.0.6
1a.java 1588ms 6.4ms 49.2MB 1610ms 60ms openjdk/zgc 19
1.java 2015ms 11ms 141.0MB 2093ms 47ms graal/jvm 17.0.6
1.java 2139ms 13ms 220.5MB 2177ms 60ms openjdk 21
1.java 2146ms 7.9ms 194.4MB 2187ms 40ms openjdk 19
1.java 2532ms 5.3ms 573.9MB 2230ms 403ms openjdk/zgc 19
2.java timeout 0.0ms 504.9MB 5183ms 117ms openjdk 19
2.java timeout 0.0ms 508.6MB 5163ms 133ms openjdk 21
2.java timeout 0.0ms 1794.1MB 4513ms 900ms openjdk/zgc 19

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1a.java 210ms 1.3ms 48.8MB 270ms 10ms openjdk 19
1b.java 218ms 11ms 45.8MB 277ms 20ms openjdk 19
1b.java 219ms 13ms 44.7MB 293ms 13ms openjdk 21
1.java 223ms 5.6ms 96.9MB 267ms 27ms openjdk 21
1.java 232ms 14ms 96.7MB 273ms 17ms openjdk 19
1a.java 232ms 2.7ms 96.0MB 303ms 27ms graal/jvm 17.0.6
1.java 242ms 6.6ms 102.6MB 313ms 30ms graal/jvm 17.0.6
1a.java 246ms 32ms 46.7MB 350ms 17ms openjdk 21
1b-m.java 251ms 4.8ms 96.2MB 357ms 30ms graal/jvm 17.0.6
1b.java 270ms 15ms 44.2MB 293ms 53ms openjdk/zgc 19
1a.java 271ms 21ms 47.2MB 307ms 53ms openjdk/zgc 19
1.java 299ms 9.6ms 113.1MB 287ms 97ms openjdk/zgc 19
2.java 789ms 31ms 514.7MB 977ms 120ms openjdk 19
2.java 800ms 46ms 531.2MB 997ms 120ms openjdk 21
2.java 1402ms 4.8ms 970.1MB 1057ms 617ms openjdk/zgc 19

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 516ms 15ms 364.2MB 523ms 83ms openjdk 19
1.java 533ms 1.9ms 288.0MB 527ms 90ms openjdk 21
1.java 557ms 8.3ms 349.3MB 697ms 93ms graal/jvm 17.0.6
1.java 1022ms 4.5ms 760.2MB 680ms 483ms openjdk/zgc 19

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 228ms 6.0ms 173.0MB 260ms 30ms openjdk 19
1.java 234ms 14ms 223.0MB 227ms 70ms openjdk 21
1-m.java 297ms 29ms 280.2MB 370ms 80ms graal/jvm 17.0.6
1.java 440ms 8.8ms 339.3MB 280ms 200ms openjdk/zgc 19

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 547ms 1.0ms 87.4MB 573ms 23ms graal/jvm 17.0.6
1.java 570ms 5.1ms 44.0MB 570ms 17ms openjdk 19
1.java 571ms 8.8ms 42.0MB 587ms 13ms openjdk 21
1.java 625ms 10ms 43.6MB 590ms 57ms openjdk/zgc 19
2.java 1937ms 11ms 537.8MB 1967ms 113ms openjdk 21
2.java 1958ms 7.7ms 509.5MB 1973ms 130ms openjdk 19
2.java 2631ms 16ms 1214.9MB 2033ms 783ms openjdk/zgc 19

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 147ms 8.0ms 89.7MB 177ms 23ms graal/jvm 17.0.6
1.java 155ms 7.2ms 42.3MB 167ms 7ms openjdk 19
1.java 158ms 2.4ms 42.3MB 173ms 13ms openjdk 21
1.java 196ms 1.5ms 41.9MB 153ms 63ms openjdk/zgc 19
2.java 440ms 7.3ms 325.2MB 500ms 80ms openjdk 19
2.java 441ms 4.3ms 345.1MB 493ms 83ms openjdk 21
2.java 695ms 0.6ms 440.4MB 543ms 300ms openjdk/zgc 19

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.java 1018ms 4.2ms 52.2MB 1047ms 20ms openjdk 21
2.java 1031ms 6.4ms 52.7MB 1063ms 13ms openjdk 19
1.java 1040ms 16ms 85.5MB 1053ms 27ms openjdk 21
2.java 1042ms 5.0ms 49.9MB 1023ms 53ms openjdk/zgc 19
1.java 1089ms 31ms 84.9MB 1110ms 17ms openjdk 19
1.java 1092ms 6.4ms 111.8MB 1030ms 90ms openjdk/zgc 19
2-m.java 1749ms 22ms 208.3MB 3060ms 87ms graal/jvm 17.0.6
1-m.java 1878ms 75ms 342.6MB 2760ms 97ms graal/jvm 17.0.6

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 244ms 2.5ms 60.6MB 270ms 17ms openjdk 21
1.java 252ms 4.1ms 62.2MB 273ms 17ms openjdk 19
1.java 294ms 11ms 61.1MB 277ms 53ms openjdk/zgc 19
2.java 335ms 5.6ms 46.4MB 367ms 10ms openjdk 21
2.java 339ms 17ms 48.4MB 357ms 17ms openjdk 19
1-m.java 347ms 9.9ms 144.0MB 480ms 47ms graal/jvm 17.0.6
2.java 375ms 1.1ms 44.0MB 357ms 50ms openjdk/zgc 19
2-m.java 626ms 4.2ms 149.3MB 1103ms 50ms graal/jvm 17.0.6

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java timeout 0.0ms 336.1MB 5410ms 97ms graal/jvm 17.0.6
1.java timeout 0.0ms 274.7MB 5430ms 77ms openjdk 19
1.java timeout 0.0ms 265.0MB 5597ms 80ms openjdk 21
1.java timeout 0.0ms 1251.4MB 5050ms 640ms openjdk/zgc 19

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.java 1360ms 3.6ms 311.3MB 1723ms 87ms graal/jvm 17.0.6
1.java 1449ms 27ms 294.4MB 1920ms 90ms openjdk 21
1.java 1457ms 25ms 298.2MB 1780ms 80ms openjdk 19
1.java 2028ms 3.0ms 928.4MB 2093ms 630ms openjdk/zgc 19

regex-redux

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.java timeout 0.0ms 254.0MB 5310ms 77ms graal/jvm 17.0.6
3.java timeout 0.0ms 207.9MB 5260ms 60ms openjdk 19
3.java timeout 0.0ms 205.2MB 5293ms 53ms openjdk 21
3.java timeout 0.0ms 335.7MB 4977ms 233ms openjdk/zgc 19

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.java 1035ms 21ms 166.2MB 1450ms 53ms graal/jvm 17.0.6
3.java 1074ms 16ms 111.0MB 1403ms 30ms openjdk 19
3.java 1083ms 7.9ms 115.9MB 1420ms 37ms openjdk 21
3.java 1180ms 14ms 156.9MB 1357ms 120ms openjdk/zgc 19

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2-m.java 4254ms 123ms 89.4MB 8177ms 63ms graal/jvm 17.0.6
2.java timeout 0.0ms 44.0MB 9683ms 17ms openjdk 19
2.java timeout 0.0ms 42.0MB 9717ms 20ms openjdk 21
2.java timeout 0.0ms 42.1MB 9630ms 57ms openjdk/zgc 19

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2-m.java 1250ms 1.1ms 91.6MB 2287ms 40ms graal/jvm 17.0.6
2-m.java 1443ms 74ms 42.3MB 2720ms 10ms openjdk 21
2-m.java 1745ms 194ms 44.5MB 3297ms 17ms openjdk 19
2-m.java 1892ms 165ms 43.8MB 3507ms 60ms openjdk/zgc 19

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2-m.java 461ms 8.6ms 92.3MB 757ms 33ms graal/jvm 17.0.6
2-m.java 533ms 34ms 42.5MB 913ms 27ms openjdk 21
2-m.java 606ms 38ms 43.3MB 987ms 53ms openjdk/zgc 19
2-m.java 615ms 12ms 44.5MB 1080ms 20ms openjdk 19

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.java 3550ms 375ms 198.0MB 6750ms 97ms openjdk 19
1-m.java 4412ms 34ms 932.1MB 7853ms 540ms openjdk/zgc 19
1.java timeout 0.0ms 143.0MB 9343ms 73ms openjdk 21

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.java 768ms 36ms 105.4MB 1360ms 40ms openjdk 21
1-m.java 817ms 113ms 113.6MB 1420ms 57ms openjdk 19
1-m.java 957ms 32ms 230.4MB 1510ms 203ms openjdk/zgc 19