Current benchmark data was generated on Wed May 25 2022, 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 |
---|---|---|---|---|---|---|---|
crystal | 1.cr | 2268ms | 8.4ms | 22.3MB | 2203ms | 47ms | crystal 1.4.1 |
kotlin | 2-m.kt | 3070ms | 596ms | 182.5MB | 5807ms | 87ms | kotlin/jvm 17.0.2 |
kotlin | 1.kt | 3092ms | 4.3ms | 170.9MB | 3890ms | 70ms | kotlin/jvm 17.0.2 |
kotlin | 1.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
kotlin | 2-m.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 1.cr | 126ms | 3.3ms | 7.6MB | 110ms | 3ms | crystal 1.4.1 |
kotlin | 1-m.kt | 706ms | 27ms | 93.2MB | 1247ms | 43ms | kotlin/jvm 17.0.2 |
kotlin | 2-m.kt | 976ms | 5.7ms | 68.2MB | 1703ms | 33ms | kotlin/native 1.6.21 |
kotlin | 2-m.kt | 1003ms | 75ms | 105.5MB | 1820ms | 40ms | kotlin/jvm 17.0.2 |
kotlin | 1.kt | 1172ms | 4.8ms | 48.7MB | 1147ms | 10ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 0-unsafe.cr | 63ms | 1.8ms | 3.0MB | 50ms | 0ms | crystal 1.4.1 |
crystal | 1.cr | 110ms | 0.2ms | 3.1MB | 100ms | 0ms | crystal 1.4.1 |
kotlin | 2-m.kt | 243ms | 1.3ms | 112.3MB | 323ms | 47ms | kotlin/jvm 17.0.2 |
kotlin | 1.kt | 256ms | 2.6ms | 109.7MB | 307ms | 33ms | kotlin/jvm 17.0.2 |
kotlin | 2.kt | 395ms | 25ms | 92.1MB | 363ms | 13ms | kotlin/native 1.6.21 |
kotlin | 1.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 0-unsafe.cr | 176ms | 0.2ms | 4.9MB | 160ms | 0ms | crystal 1.4.1 |
crystal | 1.cr | 323ms | 4.4ms | 5.1MB | 310ms | 0ms | crystal 1.4.1 |
kotlin | 2.kt | 417ms | 7.8ms | 127.4MB | 510ms | 47ms | kotlin/jvm 17.0.2 |
kotlin | 1.kt | 484ms | 10.0ms | 138.4MB | 517ms | 53ms | kotlin/jvm 17.0.2 |
kotlin | 2.kt | 1335ms | 16ms | 150.2MB | 1290ms | 30ms | kotlin/native 1.6.21 |
kotlin | 1.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 0-unsafe.cr | 31ms | 2.3ms | 3.1MB | 20ms | 0ms | crystal 1.4.1 |
crystal | 1.cr | 57ms | 1.1ms | 5.1MB | 47ms | 0ms | crystal 1.4.1 |
kotlin | 1.kt | 184ms | 1.5ms | 74.1MB | 240ms | 27ms | kotlin/jvm 17.0.2 |
kotlin | 2.kt | 192ms | 3.8ms | 42.1MB | 167ms | 10ms | kotlin/native 1.6.21 |
kotlin | 2-m.kt | 199ms | 1.9ms | 78.8MB | 280ms | 30ms | kotlin/jvm 17.0.2 |
kotlin | 1.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 1.cr | 593ms | 0.5ms | 3.2MB | 577ms | 0ms | crystal 1.4.1 |
crystal | 2.cr | 623ms | 0.5ms | 3.4MB | 610ms | 0ms | crystal 1.4.1 |
kotlin | 1.kt | 633ms | 16ms | 43.1MB | 647ms | 10ms | kotlin/jvm 17.0.2 |
kotlin | 1n.kt | 705ms | 4.2ms | 1.1MB | 693ms | 0ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 1.cr | 65ms | 1.7ms | 5.0MB | 53ms | 0ms | crystal 1.4.1 |
crystal | 2.cr | 67ms | 1.8ms | 3.2MB | 57ms | 0ms | crystal 1.4.1 |
kotlin | 1n.kt | 73ms | 1.5ms | 1.1MB | 67ms | 0ms | kotlin/native 1.6.21 |
kotlin | 1.kt | 149ms | 1.4ms | 43.2MB | 160ms | 17ms | kotlin/jvm 17.0.2 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 1.cr | 2792ms | 50ms | 8.8MB | 3063ms | 283ms | crystal 1.4.1 |
kotlin | 1.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/jvm 17.0.2 |
kotlin | 1n.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
kotlin | 2n.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
lang | code | time | stddev | peak-mem mem | time(user) | time(sys) | compiler compiler/runtime |
---|---|---|---|---|---|---|---|
crystal | 1.cr | 645ms | 7.0ms | 7.5MB | 663ms | 83ms | crystal 1.4.1 |
kotlin | 1.kt | 1560ms | 32ms | 249.6MB | 1917ms | 100ms | kotlin/jvm 17.0.2 |
kotlin | 1n.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |
kotlin | 2n.kt | timeout | 0.0ms | 0.0MB | 0ms | 0ms | kotlin/native 1.6.21 |