Current benchmark data was generated on Tue Dec 31 2024, 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 |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 455ms | 16ms | 575.5MB | 540ms | 63ms | kotlin/jvm 21 |
go | 1-m.go | 2534ms | 14ms | 41.9MB | 5390ms | 50ms | go 1.23.4 |
go | 1.go | 2615ms | 48ms | 52.2MB | 2603ms | 0ms | tinygo 0.35.0 |
kotlin | 1-m.kt | 2928ms | 6.8ms | 248.5MB | 4967ms | 627ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 95ms | 2.4ms | 158.2MB | 103ms | 23ms | kotlin/jvm 21 |
go | 1.go | 219ms | 1.4ms | 6.8MB | 210ms | 0ms | tinygo 0.35.0 |
go | 1-m.go | 225ms | 0.9ms | 7.9MB | 373ms | 13ms | go 1.23.4 |
kotlin | 1-m.kt | 257ms | 6.2ms | 32.6MB | 400ms | 63ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 1-m.go | 472ms | 45ms | 15.6MB | 1830ms | 3ms | go 1.23.4 |
go | 1.go | 1209ms | 15ms | 256.6MB | 1177ms | 20ms | tinygo 0.35.0 |
kotlin | 2-m.kt | 1799ms | 182ms | 235.5MB | 6667ms | 90ms | kotlin/jvm 21 |
kotlin | 1.kt | 2058ms | 23ms | 217.3MB | 2833ms | 57ms | kotlin/jvm 21 |
kotlin | 1.kt | timeout | 0.0ms | 14.8MB | 6030ms | 500ms | kotlin/native 1.8.21 |
kotlin | 2-m.kt | timeout | 0.0ms | 52.1MB | 19097ms | 113ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 1-m.go | 39ms | 6.3ms | 7.5MB | 127ms | 0ms | go 1.23.4 |
go | 1.go | 214ms | 5.5ms | 65.8MB | 200ms | 3ms | tinygo 0.35.0 |
kotlin | 2-m.kt | 366ms | 8.9ms | 38.2MB | 1350ms | 13ms | kotlin/native 1.8.21 |
kotlin | 1-m.kt | 450ms | 15ms | 73.3MB | 1017ms | 37ms | kotlin/jvm 21 |
kotlin | 1.kt | 646ms | 7.8ms | 10.8MB | 807ms | 53ms | kotlin/native 1.8.21 |
kotlin | 2-m.kt | 757ms | 71ms | 99.7MB | 2643ms | 70ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 1-http2.go | 107ms | 6.3ms | 59.5MB | 310ms | 60ms | go 1.23.4 |
go | 1-m.go | 457ms | 4.6ms | 172.4MB | 660ms | 590ms | go 1.23.4 |
go | 2-m.go | 464ms | 18ms | 178.4MB | 627ms | 640ms | go 1.23.4 |
kotlin | 2-m.kt | 4837ms | 51ms | 400.1MB | 14360ms | 2470ms | kotlin/jvm 21 |
kotlin | 1.kt | timeout | 0.0ms | 405.3MB | 16127ms | 2747ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 1-http2.go | 20ms | 10ms | 26.8MB | 45ms | 20ms | go 1.23.4 |
go | 2-m.go | 98ms | 14ms | 40.3MB | 67ms | 110ms | go 1.23.4 |
go | 1-m.go | 112ms | 11ms | 44.6MB | 123ms | 120ms | go 1.23.4 |
kotlin | 1-m.kt | 2173ms | 206ms | 269.1MB | 6403ms | 597ms | kotlin/jvm 21 |
kotlin | 2.kt | 2226ms | 288ms | 241.9MB | 2337ms | 253ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 3.go | 121ms | 2.6ms | 0.3MB | 113ms | 0ms | tinygo 0.35.0 |
go | 3.go | 122ms | 1.2ms | 3.4MB | 110ms | 0ms | go 1.23.4 |
kotlin | 1-m.kt | 172ms | 3.8ms | 94.9MB | 283ms | 30ms | kotlin/jvm 21 |
kotlin | 2-m.kt | 188ms | 5.4ms | 102.2MB | 397ms | 30ms | kotlin/jvm 21 |
kotlin | 2.kt | 285ms | 1.3ms | 7.8MB | 413ms | 3ms | kotlin/native 1.8.21 |
kotlin | 1.kt | 501ms | 15ms | 7.8MB | 600ms | 7ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 2-m.kt | 298ms | 25ms | 214.4MB | 503ms | 57ms | kotlin/jvm 21 |
kotlin | 1.kt | 308ms | 0.6ms | 204.7MB | 413ms | 40ms | kotlin/jvm 21 |
go | 3.go | 361ms | 0.7ms | 2.3MB | 350ms | 0ms | tinygo 0.35.0 |
go | 3.go | 366ms | 2.2ms | 3.4MB | 357ms | 0ms | go 1.23.4 |
kotlin | 2.kt | 863ms | 8.2ms | 7.6MB | 1240ms | 50ms | kotlin/native 1.8.21 |
kotlin | 1.kt | 1456ms | 8.2ms | 7.9MB | 1763ms | 17ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 3.go | 61ms | 0.9ms | 0.1MB | 50ms | 0ms | tinygo 0.35.0 |
go | 3.go | 66ms | 2.1ms | 5.5MB | 60ms | 0ms | go 1.23.4 |
kotlin | 1-m.kt | 132ms | 1.5ms | 92.4MB | 250ms | 20ms | kotlin/jvm 21 |
kotlin | 2.kt | 134ms | 3.9ms | 5.7MB | 190ms | 0ms | kotlin/native 1.8.21 |
kotlin | 2-m.kt | 159ms | 9.9ms | 90.8MB | 307ms | 27ms | kotlin/jvm 21 |
kotlin | 1.kt | 162ms | 4.0ms | 5.8MB | 207ms | 0ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 329ms | 3.6ms | 677.6MB | 360ms | 70ms | kotlin/jvm 21 |
kotlin | 1-m.kt | 1426ms | 20ms | 136.5MB | 2193ms | 330ms | kotlin/native 1.8.21 |
go | 1-m.go | 1523ms | 5.6ms | 36.8MB | 3107ms | 37ms | go 1.23.4 |
go | 2-m.go | 1741ms | 13ms | 43.1MB | 3667ms | 37ms | go 1.23.4 |
go | 1.go | 1890ms | 41ms | 52.1MB | 1877ms | 0ms | tinygo 0.35.0 |
go | 2.go | 2426ms | 14ms | 120.4MB | 2400ms | 10ms | tinygo 0.35.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1.kt | 122ms | 2.0ms | 206.5MB | 157ms | 23ms | kotlin/jvm 21 |
kotlin | 1-m.kt | 283ms | 1.7ms | 40.4MB | 410ms | 57ms | kotlin/native 1.8.21 |
go | 1-m.go | 349ms | 4.9ms | 14.1MB | 667ms | 23ms | go 1.23.4 |
go | 1.go | 358ms | 5.5ms | 13.6MB | 347ms | 0ms | tinygo 0.35.0 |
go | 2-m.go | 388ms | 1.9ms | 14.2MB | 777ms | 27ms | go 1.23.4 |
go | 2.go | 523ms | 7.2ms | 22.8MB | 510ms | 0ms | tinygo 0.35.0 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 1.go | 331ms | 6.3ms | 0.1MB | 323ms | 0ms | tinygo 0.35.0 |
go | 1.go | 344ms | 2.0ms | 3.4MB | 337ms | 0ms | go 1.23.4 |
kotlin | 1n.kt | 386ms | 8.6ms | 4.7MB | 373ms | 0ms | kotlin/native 1.8.21 |
kotlin | 1.kt | 422ms | 3.5ms | 49.7MB | 463ms | 13ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 1.go | 34ms | 0.8ms | 0.1MB | 20ms | 0ms | tinygo 0.35.0 |
go | 1.go | 38ms | 0.5ms | 3.4MB | 30ms | 0ms | go 1.23.4 |
kotlin | 1n.kt | 43ms | 0.8ms | 4.6MB | 30ms | 0ms | kotlin/native 1.8.21 |
kotlin | 1.kt | 112ms | 0.7ms | 49.4MB | 150ms | 17ms | kotlin/jvm 21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 8.go | 1054ms | 8.1ms | 8.5MB | 1043ms | 0ms | go 1.23.4 |
kotlin | 1.kt | 3505ms | 35ms | 353.8MB | 4313ms | 93ms | kotlin/jvm 21 |
kotlin | 1n.kt | timeout | 0.0ms | 7.5MB | 6350ms | 310ms | kotlin/native 1.8.21 |
kotlin | 2n.kt | timeout | 0.0ms | 13.3MB | 4990ms | 177ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 8.go | 254ms | 6.5ms | 8.4MB | 243ms | 0ms | go 1.23.4 |
kotlin | 1-m.kt | 939ms | 37ms | 355.0MB | 1617ms | 70ms | kotlin/jvm 21 |
kotlin | 1n.kt | timeout | 0.0ms | 7.4MB | 6420ms | 257ms | kotlin/native 1.8.21 |
kotlin | 2n.kt | timeout | 0.0ms | 8.2MB | 5000ms | 150ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 3.go | timeout | 0.0ms | 122.4MB | 4977ms | 47ms | go 1.23.4 |
go | 3.go | timeout | 0.0ms | 106.6MB | 4983ms | 3ms | tinygo 0.35.0 |
kotlin | 1.kt | timeout | 0.0ms | 171.4MB | 5370ms | 43ms | kotlin/jvm 21 |
kotlin | 1n.kt | timeout | 0.0ms | 278.9MB | 5463ms | 463ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
kotlin | 1-m.kt | 759ms | 8.2ms | 133.8MB | 1143ms | 27ms | kotlin/jvm 21 |
go | 3.go | 1730ms | 61ms | 20.3MB | 1703ms | 27ms | go 1.23.4 |
go | 3.go | 2365ms | 25ms | 28.8MB | 2350ms | 0ms | tinygo 0.35.0 |
kotlin | 1n.kt | 2968ms | 26ms | 65.1MB | 3653ms | 3ms | kotlin/native 1.8.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
go | 4-m.go | 1818ms | 34ms | 5.4MB | 6960ms | 13ms | go 1.23.4 |
go | 1.go | 3496ms | 38ms | 5.5MB | 3487ms | 0ms | go 1.23.4 |
go | 1.go | timeout | 0.0ms | 0.5MB | 4990ms | 0ms | tinygo 0.35.0 |