Kotlin VS Haxe benchmarks

Current benchmark data was generated on Sun Jun 01 2025, 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
kotlin 1.kt 507ms 12ms 574.5MB 603ms 97ms kotlin/jvm 21
haxe 1.hx 1321ms 15ms 143.9MB 1510ms 67ms haxe/cpp 4.3.6
kotlin 1.kt 3832ms 23ms 145.7MB 4013ms 63ms kotlin/native 2.1.20
haxe 2.hx 4384ms 33ms 495.3MB 4913ms 253ms haxe/cpp 4.3.6
haxe 1.hx timeout 0.0ms 48.6MB 5477ms 433ms haxe/hl/c 4.3.6
haxe 2.hx timeout 0.0ms 83.0MB 4890ms 730ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 51.1MB 7413ms 413ms haxe/hl/jit 1.15.0
haxe 2.hx timeout 0.0ms 130.9MB 7360ms 757ms haxe/hl/jit 1.15.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 92ms 2.1ms 25.6MB 90ms 10ms haxe/cpp 4.3.6
kotlin 1.kt 124ms 1.0ms 159.2MB 150ms 27ms kotlin/jvm 21
kotlin 1.kt 208ms 3.8ms 17.6MB 217ms 0ms kotlin/native 2.1.20
haxe 2.hx 398ms 1.3ms 58.3MB 427ms 23ms haxe/cpp 4.3.6
haxe 1.hx 637ms 1.2ms 8.8MB 613ms 43ms haxe/hl/c 4.3.6
haxe 1.hx 671ms 6.2ms 11.2MB 740ms 53ms haxe/hl/jit 1.15.0
haxe 2.hx 918ms 2.5ms 13.7MB 813ms 147ms haxe/hl/c 4.3.6
haxe 2.hx 922ms 6.6ms 25.0MB 903ms 157ms haxe/hl/jit 1.15.0

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 1735ms 114ms 233.9MB 6417ms 103ms kotlin/jvm 21
kotlin 1.kt 2195ms 28ms 218.9MB 3027ms 70ms kotlin/jvm 21
kotlin 2-m.kt 4274ms 24ms 21.4MB 14387ms 537ms kotlin/native 2.1.20
kotlin 1.kt timeout 0.0ms 17.4MB 5507ms 27ms kotlin/native 2.1.20

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 249ms 1.7ms 21.5MB 843ms 37ms kotlin/native 2.1.20
kotlin 1.kt 386ms 5.8ms 17.4MB 400ms 0ms kotlin/native 2.1.20
kotlin 1-m.kt 474ms 14ms 73.5MB 1073ms 43ms kotlin/jvm 21
kotlin 2-m.kt 923ms 20ms 101.3MB 3240ms 73ms kotlin/jvm 21

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 2.1ms 0.2ms 2.9MB 0ms 0ms haxe/hl/c 4.3.6
kotlin 1.kt 2.2ms 0.1ms 3.1MB 0ms 0ms kotlin/native 2.1.20
haxe 1.hx 2.3ms 0.2ms 4.5MB 0ms 0ms haxe/cpp 4.3.6
haxe 1.hx 3.5ms 0.4ms 2.8MB 0ms 0ms haxe/hl/jit 1.15.0
kotlin 1.kt 62ms 0.6ms 47.7MB 74ms 16ms kotlin/jvm 21

http-server

Input: 3000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 4825ms 117ms 434.8MB 15097ms 2490ms kotlin/jvm 21
kotlin 1.kt timeout 0.0ms 434.8MB 16347ms 2720ms kotlin/jvm 21

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 2078ms 157ms 233.3MB 5667ms 590ms kotlin/jvm 21
kotlin 1-m.kt 2112ms 39ms 272.7MB 5717ms 583ms kotlin/jvm 21

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 732ms 78ms 157.5MB 1977ms 67ms kotlin/jvm 21

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 1846ms 49ms 711.3MB 4333ms 173ms kotlin/jvm 21

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 135ms 1.8ms 20.5MB 120ms 3ms haxe/cpp 4.3.6
haxe 1.hx 136ms 1.7ms 3.1MB 127ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 156ms 2.5ms 3.8MB 150ms 0ms haxe/hl/jit 1.15.0
kotlin 2.kt 166ms 3.8ms 12.4MB 170ms 0ms kotlin/native 2.1.20
kotlin 1-m.kt 195ms 3.4ms 95.1MB 327ms 27ms kotlin/jvm 21
kotlin 2-m.kt 200ms 3.1ms 102.1MB 437ms 40ms kotlin/jvm 21
kotlin 1.kt 355ms 2.4ms 12.4MB 353ms 3ms kotlin/native 2.1.20

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 317ms 3.3ms 213.3MB 553ms 43ms kotlin/jvm 21
kotlin 1.kt 340ms 3.7ms 203.0MB 463ms 37ms kotlin/jvm 21
haxe 1.hx 381ms 3.1ms 25.8MB 367ms 3ms haxe/cpp 4.3.6
haxe 1.hx 396ms 2.2ms 3.0MB 383ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 453ms 3.7ms 3.8MB 443ms 0ms haxe/hl/jit 1.15.0
kotlin 2.kt 474ms 2.5ms 12.4MB 500ms 0ms kotlin/native 2.1.20
kotlin 1.kt 1041ms 16ms 12.5MB 1067ms 3ms kotlin/native 2.1.20

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
haxe 1.hx 63ms 1.0ms 12.3MB 50ms 0ms haxe/cpp 4.3.6
haxe 1.hx 68ms 1.6ms 3.0MB 60ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 77ms 0.4ms 3.6MB 70ms 0ms haxe/hl/jit 1.15.0
kotlin 2.kt 94ms 0.9ms 12.8MB 83ms 0ms kotlin/native 2.1.20
kotlin 1.kt 120ms 0.5ms 12.8MB 110ms 3ms kotlin/native 2.1.20
kotlin 1-m.kt 153ms 0.0ms 90.8MB 303ms 23ms kotlin/jvm 21
kotlin 2-m.kt 161ms 4.6ms 96.1MB 343ms 30ms kotlin/jvm 21

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1.kt 384ms 3.9ms 680.1MB 450ms 87ms kotlin/jvm 21
haxe 1.hx 904ms 6.1ms 94.9MB 990ms 47ms haxe/cpp 4.3.6
kotlin 1.kt 1811ms 15ms 89.9MB 1887ms 43ms kotlin/native 2.1.20
haxe 1.hx timeout 0.0ms 32.6MB 4917ms 523ms haxe/hl/c 4.3.6
haxe 1.hx timeout 0.0ms 57.0MB 5810ms 497ms haxe/hl/jit 1.15.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 158ms 4.9ms 207.2MB 210ms 43ms kotlin/jvm 21
haxe 1.hx 170ms 3.1ms 26.6MB 173ms 10ms haxe/cpp 4.3.6
kotlin 1.kt 255ms 3.0ms 25.3MB 260ms 10ms kotlin/native 2.1.20
haxe 1.hx 1298ms 40ms 20.3MB 1337ms 120ms haxe/hl/jit 1.15.0
haxe 1.hx 1307ms 5.9ms 10.8MB 1263ms 133ms haxe/hl/c 4.3.6

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1n.kt 349ms 0.4ms 3.5MB 340ms 0ms kotlin/native 2.1.20
kotlin 1.kt 446ms 2.7ms 49.3MB 490ms 20ms kotlin/jvm 21
haxe 2.hx 856ms 5.0ms 3.0MB 843ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 1068ms 2.6ms 3.0MB 1057ms 0ms haxe/hl/c 4.3.6
haxe 3.hx 1384ms 8.3ms 25.6MB 1513ms 33ms haxe/cpp 4.3.6
haxe 2.hx 2410ms 13ms 3.6MB 2400ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 2467ms 0.4ms 3.6MB 2460ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx timeout 0.0ms 4.5MB 4990ms 0ms haxe/cpp 4.3.6
haxe 2.hx timeout 0.0ms 4.5MB 4990ms 0ms haxe/cpp 4.3.6
haxe 3.hx timeout 0.0ms 3.3MB 3920ms 1600ms haxe/hl/c 4.3.6
haxe 3.hx timeout 0.0ms 4.0MB 4170ms 1310ms haxe/hl/jit 1.15.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1n.kt 38ms 0.7ms 3.5MB 30ms 0ms kotlin/native 2.1.20
haxe 2.hx 88ms 0.6ms 3.0MB 80ms 0ms haxe/hl/c 4.3.6
haxe 1.hx 111ms 0.5ms 3.0MB 100ms 0ms haxe/hl/c 4.3.6
kotlin 1-m.kt 119ms 0.7ms 49.6MB 163ms 20ms kotlin/jvm 21
haxe 3.hx 154ms 1.9ms 25.6MB 147ms 13ms haxe/cpp 4.3.6
haxe 2.hx 245ms 0.1ms 3.6MB 233ms 0ms haxe/hl/jit 1.15.0
haxe 1.hx 255ms 2.4ms 3.6MB 247ms 0ms haxe/hl/jit 1.15.0
haxe 3.hx 669ms 2.7ms 3.1MB 513ms 213ms haxe/hl/c 4.3.6
haxe 2.hx 674ms 6.4ms 4.4MB 667ms 0ms haxe/cpp 4.3.6
haxe 3.hx 781ms 7.2ms 3.8MB 637ms 207ms haxe/hl/jit 1.15.0
haxe 1.hx 811ms 1.5ms 4.4MB 800ms 0ms haxe/cpp 4.3.6

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1.kt 3710ms 30ms 353.2MB 4553ms 117ms kotlin/jvm 21
kotlin 1n.kt timeout 0.0ms 26.7MB 3983ms 1510ms kotlin/native 2.1.20
kotlin 2n.kt timeout 0.0ms 30.6MB 5117ms 133ms kotlin/native 2.1.20

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 975ms 38ms 365.7MB 1740ms 93ms kotlin/jvm 21
kotlin 1n.kt timeout 0.0ms 26.3MB 3980ms 1510ms kotlin/native 2.1.20
kotlin 2n.kt timeout 0.0ms 30.6MB 5123ms 113ms kotlin/native 2.1.20

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1.kt timeout 0.0ms 173.5MB 5413ms 47ms kotlin/jvm 21
kotlin 1n.kt timeout 0.0ms 226.9MB 5057ms 127ms kotlin/native 2.1.20

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 834ms 5.0ms 134.5MB 1307ms 40ms kotlin/jvm 21
kotlin 1n.kt 3338ms 285ms 51.2MB 3400ms 73ms kotlin/native 2.1.20

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1.kt 3058ms 62ms 231.8MB 4043ms 70ms kotlin/jvm 21

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 964ms 26ms 231.0MB 1823ms 60ms kotlin/jvm 21