Current benchmark data was generated on Mon May 19 2025, full log can be found HERE
CONTRIBUTIONS are WELCOME!
* -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.)
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
java | 2.java | 458ms | 6.7ms | 574.1MB | 563ms | 77ms | openjdk 21 |
java | 2-m.java | 466ms | 7.3ms | 643.0MB | 657ms | 117ms | graal/jvm 17.0.8 |
java | 2.java | 468ms | 2.3ms | 638.7MB | 577ms | 87ms | openjdk 23 |
kotlin | 1.kt | 491ms | 9.8ms | 576.6MB | 603ms | 80ms | kotlin/jvm 21 |
java | 2.java | 1195ms | 46ms | 1101.7MB | 577ms | 787ms | openjdk/zgc 21 |
kotlin | 1.kt | 4175ms | 24ms | 143.7MB | 4367ms | 73ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 121ms | 0.9ms | 159.3MB | 150ms | 30ms | kotlin/jvm 21 |
java | 2.java | 128ms | 1.6ms | 167.0MB | 157ms | 33ms | openjdk 21 |
java | 2.java | 133ms | 5.7ms | 96.5MB | 163ms | 30ms | openjdk 23 |
java | 2-m.java | 152ms | 7.0ms | 215.4MB | 227ms | 57ms | graal/jvm 17.0.8 |
kotlin | 1.kt | 235ms | 15ms | 17.6MB | 240ms | 7ms | kotlin/native 2.1.20 |
java | 2.java | 308ms | 9.8ms | 241.5MB | 170ms | 193ms | openjdk/zgc 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 2-m.kt | 1893ms | 160ms | 233.8MB | 7030ms | 100ms | kotlin/jvm 21 |
kotlin | 1.kt | 2169ms | 49ms | 220.1MB | 3017ms | 67ms | kotlin/jvm 21 |
java | 1-m.java | 2237ms | 158ms | 258.9MB | 8497ms | 143ms | openjdk 21 |
java | 1-m.java | 2494ms | 200ms | 242.9MB | 9503ms | 130ms | openjdk 23 |
java | 1-m.java | 2940ms | 99ms | 1203.7MB | 9563ms | 1067ms | openjdk/zgc 21 |
kotlin | 2-m.kt | 4283ms | 17ms | 21.6MB | 14280ms | 553ms | kotlin/native 2.1.20 |
kotlin | 1.kt | timeout | 0.0ms | 17.4MB | 5517ms | 30ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 2-m.kt | 248ms | 4.5ms | 21.1MB | 837ms | 40ms | kotlin/native 2.1.20 |
kotlin | 1.kt | 395ms | 2.7ms | 17.4MB | 403ms | 7ms | kotlin/native 2.1.20 |
java | 1-m.java | 467ms | 39ms | 121.7MB | 1563ms | 73ms | openjdk 21 |
java | 1-m.java | 480ms | 45ms | 94.9MB | 1580ms | 57ms | openjdk 23 |
kotlin | 1-m.kt | 495ms | 6.5ms | 76.4MB | 1130ms | 40ms | kotlin/jvm 21 |
java | 1-m.java | 668ms | 8.4ms | 212.9MB | 1767ms | 267ms | openjdk/zgc 21 |
kotlin | 2-m.kt | 920ms | 72ms | 97.4MB | 3233ms | 77ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 2.1ms | 0.2ms | 3.0MB | 0ms | 0ms | kotlin/native 2.1.20 |
kotlin | 1.kt | 64ms | 5.9ms | 47.6MB | 78ms | 18ms | kotlin/jvm 21 |
java | 1.java | 65ms | 2.3ms | 53.1MB | 68ms | 20ms | graal/jvm 17.0.8 |
java | 1.java | 70ms | 6.5ms | 44.7MB | 80ms | 14ms | openjdk 23 |
java | 1.java | 70ms | 4.4ms | 43.9MB | 76ms | 18ms | openjdk 21 |
java | 1.java | 194ms | 7.5ms | 43.0MB | 86ms | 142ms | openjdk/zgc 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 2.kt | 168ms | 4.4ms | 12.4MB | 170ms | 0ms | kotlin/native 2.1.20 |
kotlin | 1-m.kt | 192ms | 2.4ms | 94.9MB | 323ms | 20ms | kotlin/jvm 21 |
kotlin | 2-m.kt | 209ms | 14ms | 101.4MB | 453ms | 43ms | kotlin/jvm 21 |
kotlin | 1.kt | 353ms | 2.2ms | 12.5MB | 353ms | 0ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 2-m.kt | 313ms | 0.5ms | 214.0MB | 540ms | 50ms | kotlin/jvm 21 |
kotlin | 1.kt | 340ms | 2.2ms | 203.2MB | 463ms | 37ms | kotlin/jvm 21 |
kotlin | 2.kt | 474ms | 3.0ms | 12.4MB | 500ms | 7ms | kotlin/native 2.1.20 |
kotlin | 1.kt | 1035ms | 8.5ms | 12.4MB | 1070ms | 0ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 2.kt | 95ms | 0.4ms | 12.8MB | 87ms | 3ms | kotlin/native 2.1.20 |
kotlin | 1.kt | 121ms | 0.9ms | 12.8MB | 110ms | 0ms | kotlin/native 2.1.20 |
kotlin | 1-m.kt | 153ms | 3.0ms | 90.4MB | 287ms | 30ms | kotlin/jvm 21 |
kotlin | 2-m.kt | 169ms | 8.2ms | 95.6MB | 340ms | 30ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 395ms | 2.5ms | 678.6MB | 450ms | 83ms | kotlin/jvm 21 |
java | 1.java | 404ms | 4.9ms | 534.3MB | 500ms | 93ms | openjdk 23 |
java | 1.java | 406ms | 4.3ms | 679.8MB | 490ms | 90ms | openjdk 21 |
java | 1-m.java | 408ms | 8.7ms | 626.3MB | 617ms | 97ms | graal/jvm 17.0.8 |
java | 1.java | 1026ms | 1.9ms | 933.9MB | 487ms | 690ms | openjdk/zgc 21 |
kotlin | 1.kt | 2036ms | 172ms | 90.1MB | 2113ms | 47ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1-m.kt | 155ms | 2.4ms | 207.3MB | 203ms | 50ms | kotlin/jvm 21 |
java | 1-m.java | 167ms | 1.6ms | 206.1MB | 240ms | 43ms | openjdk 21 |
java | 1-m.java | 168ms | 1.1ms | 158.3MB | 247ms | 40ms | openjdk 23 |
java | 1-m.java | 216ms | 12ms | 253.2MB | 367ms | 60ms | graal/jvm 17.0.8 |
kotlin | 1.kt | 293ms | 4.6ms | 25.6MB | 297ms | 10ms | kotlin/native 2.1.20 |
java | 1.java | 419ms | 8.2ms | 341.9MB | 217ms | 280ms | openjdk/zgc 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1n.kt | 353ms | 3.9ms | 3.6MB | 343ms | 0ms | kotlin/native 2.1.20 |
kotlin | 1.kt | 445ms | 1.8ms | 49.2MB | 490ms | 20ms | kotlin/jvm 21 |
java | 1.java | 445ms | 0.4ms | 45.0MB | 490ms | 13ms | openjdk 21 |
java | 1.java | 446ms | 3.8ms | 48.4MB | 477ms | 20ms | openjdk 23 |
java | 1.java | 447ms | 2.3ms | 82.2MB | 477ms | 27ms | graal/jvm 17.0.8 |
java | 1.java | 577ms | 2.1ms | 44.8MB | 497ms | 140ms | openjdk/zgc 21 |
java | 2.java | 1252ms | 5.6ms | 639.9MB | 1390ms | 87ms | openjdk 21 |
java | 2.java | 1277ms | 19ms | 794.0MB | 1390ms | 113ms | openjdk 23 |
java | 2.java | 3274ms | 53ms | 2445.6MB | 1653ms | 1830ms | openjdk/zgc 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1n.kt | 39ms | 0.2ms | 3.6MB | 30ms | 0ms | kotlin/native 2.1.20 |
java | 1.java | 120ms | 4.0ms | 48.0MB | 153ms | 20ms | openjdk 23 |
kotlin | 1-m.kt | 121ms | 2.3ms | 49.4MB | 170ms | 20ms | kotlin/jvm 21 |
java | 1.java | 122ms | 2.1ms | 44.9MB | 167ms | 13ms | openjdk 21 |
java | 1-m.java | 123ms | 4.2ms | 81.5MB | 157ms | 33ms | graal/jvm 17.0.8 |
java | 1.java | 249ms | 3.8ms | 44.9MB | 157ms | 147ms | openjdk/zgc 21 |
java | 2-m.java | 302ms | 22ms | 344.8MB | 437ms | 53ms | openjdk 21 |
java | 2-m.java | 313ms | 7.2ms | 400.0MB | 443ms | 70ms | openjdk 23 |
java | 2.java | 684ms | 17ms | 532.7MB | 467ms | 407ms | openjdk/zgc 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
java | 1.java | 3209ms | 4.7ms | 445.5MB | 3633ms | 100ms | graal/jvm 17.0.8 |
java | 1.java | 3722ms | 68ms | 433.0MB | 4600ms | 107ms | openjdk 21 |
kotlin | 1.kt | 3724ms | 64ms | 352.5MB | 4500ms | 100ms | kotlin/jvm 21 |
java | 1.java | 3750ms | 35ms | 408.8MB | 4670ms | 107ms | openjdk 23 |
java | 1.java | timeout | 0.0ms | 1830.0MB | 4663ms | 1203ms | openjdk/zgc 21 |
kotlin | 1n.kt | timeout | 0.0ms | 26.3MB | 3990ms | 1497ms | kotlin/native 2.1.20 |
kotlin | 2n.kt | timeout | 0.0ms | 30.6MB | 5130ms | 127ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
java | 1.java | 888ms | 5.7ms | 448.3MB | 1230ms | 87ms | graal/jvm 17.0.8 |
java | 1-m.java | 985ms | 9.3ms | 423.2MB | 1833ms | 87ms | openjdk 21 |
java | 1-m.java | 1005ms | 39ms | 488.4MB | 1760ms | 110ms | openjdk 23 |
kotlin | 1-m.kt | 1018ms | 20ms | 353.5MB | 1703ms | 90ms | kotlin/jvm 21 |
java | 1.java | 1983ms | 5.7ms | 1312.1MB | 1770ms | 1033ms | openjdk/zgc 21 |
kotlin | 1n.kt | timeout | 0.0ms | 26.7MB | 3990ms | 1510ms | kotlin/native 2.1.20 |
kotlin | 2n.kt | timeout | 0.0ms | 30.6MB | 5113ms | 130ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
java | 3.java | timeout | 0.0ms | 399.2MB | 5400ms | 90ms | graal/jvm 17.0.8 |
java | 3.java | timeout | 0.0ms | 302.2MB | 5327ms | 60ms | openjdk 21 |
java | 3.java | timeout | 0.0ms | 305.0MB | 5323ms | 63ms | openjdk 23 |
java | 3.java | timeout | 0.0ms | 468.6MB | 4970ms | 293ms | openjdk/zgc 21 |
kotlin | 1.kt | timeout | 0.0ms | 173.6MB | 5407ms | 47ms | kotlin/jvm 21 |
kotlin | 1n.kt | timeout | 0.0ms | 226.8MB | 5080ms | 117ms | kotlin/native 2.1.20 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
java | 3-m.java | 772ms | 8.0ms | 176.1MB | 1150ms | 57ms | graal/jvm 17.0.8 |
java | 3-m.java | 798ms | 9.3ms | 128.8MB | 1187ms | 37ms | openjdk 21 |
java | 3-m.java | 805ms | 18ms | 132.4MB | 1233ms | 43ms | openjdk 23 |
kotlin | 1-m.kt | 839ms | 12ms | 134.6MB | 1270ms | 40ms | kotlin/jvm 21 |
java | 3.java | 985ms | 10ms | 133.8MB | 1160ms | 190ms | openjdk/zgc 21 |
kotlin | 1n.kt | 3231ms | 31ms | 51.1MB | 3300ms | 70ms | kotlin/native 2.1.20 |