V VS Kotlin benchmarks

Current benchmark data was generated on Mon Apr 14 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 513ms 4.4ms 577.8MB 603ms 107ms kotlin/jvm 21
v 1.v 776ms 13ms 28.8MB 763ms 0ms v/clang+gc 0.4.10
v 1.v 2181ms 25ms 2086.6MB 1293ms 870ms v/clang 0.4.10
kotlin 1.kt 4515ms 38ms 146.1MB 4703ms 67ms kotlin/native 2.1.20

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 72ms 2.7ms 4.6MB 60ms 0ms v/clang+gc 0.4.10
kotlin 1.kt 126ms 1.8ms 161.2MB 150ms 37ms kotlin/jvm 21
v 1.v 210ms 4.3ms 198.0MB 120ms 80ms v/clang 0.4.10
kotlin 1.kt 318ms 32ms 17.9MB 327ms 7ms kotlin/native 2.1.20

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 2184ms 180ms 244.6MB 8133ms 130ms kotlin/jvm 21
kotlin 1.kt 2217ms 57ms 220.3MB 3067ms 70ms kotlin/jvm 21
kotlin 2-m.kt 4498ms 30ms 21.5MB 14707ms 610ms kotlin/native 2.1.20
kotlin 1.kt timeout 0.0ms 17.4MB 5523ms 30ms kotlin/native 2.1.20
v 1.v timeout 0.0ms 18.1MB 8697ms 10607ms v/clang 0.4.10
v 1.v timeout 0.0ms 18.0MB 8987ms 10223ms v/clang+gc 0.4.10

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2-m.kt 253ms 6.4ms 21.3MB 847ms 40ms kotlin/native 2.1.20
kotlin 1.kt 409ms 11ms 17.4MB 420ms 10ms kotlin/native 2.1.20
kotlin 1-m.kt 492ms 12ms 77.2MB 1140ms 43ms kotlin/jvm 21
kotlin 2-m.kt 969ms 186ms 109.2MB 3360ms 83ms kotlin/jvm 21
v 1-m.v 1392ms 49ms 9.6MB 2267ms 2953ms v/clang 0.4.10
v 1-m.v 1502ms 58ms 10.3MB 2597ms 3033ms v/clang+gc 0.4.10

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v timeout 0.0ms 8.3MB 4990ms 0ms v/clang+gc 0.4.10

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v timeout 0.0ms 4.6MB 4990ms 0ms v/clang+gc 0.4.10

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 2235ms 1.8ms 1.9MB 2223ms 0ms v/clang+gc 0.4.10
v 1.v 2259ms 4.6ms 1.1MB 2253ms 0ms v/clang 0.4.10

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 190ms 2.6ms 1.9MB 180ms 0ms v/clang+gc 0.4.10
v 1.v 193ms 1.3ms 1.1MB 180ms 0ms v/clang 0.4.10

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 499ms 3.2ms 1.3MB 490ms 0ms v/clang 0.4.10
v 1.v 517ms 2.6ms 2.1MB 507ms 0ms v/clang+gc 0.4.10

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 54ms 0.6ms 2.1MB 50ms 0ms v/clang+gc 0.4.10
v 1.v 54ms 1.5ms 1.3MB 47ms 0ms v/clang 0.4.10

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 1.0ms 0.0ms 1.4MB 0ms 0ms v/clang 0.4.10
v 1.v 1.3ms 0.0ms 1.9MB 0ms 0ms v/clang+gc 0.4.10
kotlin 1.kt 2.1ms 0.1ms 3.1MB 0ms 0ms kotlin/native 2.1.20
kotlin 1.kt 67ms 2.3ms 47.7MB 82ms 16ms kotlin/jvm 21

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 2.kt 171ms 2.7ms 12.4MB 173ms 0ms kotlin/native 2.1.20
kotlin 1-m.kt 200ms 3.0ms 96.7MB 333ms 27ms kotlin/jvm 21
kotlin 2-m.kt 212ms 8.2ms 105.3MB 453ms 40ms kotlin/jvm 21
v 1.v 254ms 2.2ms 1.3MB 243ms 0ms v/clang 0.4.10
v 1.v 264ms 9.7ms 2.1MB 257ms 0ms v/clang+gc 0.4.10
kotlin 1.kt 357ms 2.2ms 12.5MB 363ms 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 325ms 2.7ms 215.9MB 557ms 50ms kotlin/jvm 21
kotlin 1.kt 344ms 2.7ms 204.8MB 463ms 40ms kotlin/jvm 21
kotlin 2.kt 476ms 6.0ms 12.6MB 507ms 3ms kotlin/native 2.1.20
v 1.v 753ms 8.3ms 1.5MB 743ms 0ms v/clang 0.4.10
v 1.v 770ms 12ms 2.1MB 760ms 0ms v/clang+gc 0.4.10
kotlin 1.kt 1043ms 15ms 12.6MB 1080ms 3ms kotlin/native 2.1.20

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 90ms 2.2ms 1.3MB 83ms 0ms v/clang 0.4.10
kotlin 2.kt 94ms 0.7ms 12.8MB 87ms 3ms kotlin/native 2.1.20
v 1.v 100ms 1.2ms 2.1MB 90ms 0ms v/clang+gc 0.4.10
kotlin 1.kt 122ms 2.7ms 12.9MB 117ms 0ms kotlin/native 2.1.20
kotlin 1-m.kt 159ms 1.4ms 92.7MB 320ms 20ms kotlin/jvm 21
kotlin 2-m.kt 167ms 2.2ms 98.3MB 350ms 37ms kotlin/jvm 21

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 311ms 1.3ms 1.6MB 300ms 0ms v/clang 0.4.10
v 1.v 313ms 1.2ms 2.3MB 300ms 0ms v/clang+gc 0.4.10
kotlin 1n.kt 352ms 1.7ms 3.5MB 340ms 0ms kotlin/native 2.1.20
kotlin 1.kt 448ms 1.3ms 49.3MB 493ms 17ms kotlin/jvm 21

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 33ms 0.5ms 1.6MB 30ms 0ms v/clang 0.4.10
v 1.v 34ms 0.4ms 2.3MB 30ms 0ms v/clang+gc 0.4.10
kotlin 1n.kt 39ms 0.9ms 3.5MB 30ms 0ms kotlin/native 2.1.20
kotlin 1-m.kt 126ms 3.5ms 49.4MB 173ms 20ms kotlin/jvm 21

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 301ms 2.5ms 40.2MB 287ms 0ms v/clang 0.4.10
v 1.v 307ms 2.3ms 41.1MB 297ms 0ms v/clang+gc 0.4.10
v 2.v 331ms 2.0ms 6.9MB 320ms 0ms v/clang+gc 0.4.10
v 2.v 332ms 2.6ms 6.1MB 320ms 0ms v/clang 0.4.10

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 59ms 3.2ms 11.7MB 50ms 0ms v/clang+gc 0.4.10
v 1.v 59ms 1.2ms 11.0MB 50ms 0ms v/clang 0.4.10
v 2.v 82ms 1.6ms 3.1MB 73ms 0ms v/clang+gc 0.4.10
v 2.v 83ms 1.8ms 2.4MB 73ms 0ms v/clang 0.4.10

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 2.v 3232ms 64ms 3.4MB 3210ms 10ms v/clang+gc 0.4.10
kotlin 1.kt 3792ms 49ms 385.9MB 4713ms 107ms kotlin/jvm 21
kotlin 1n.kt timeout 0.0ms 27.0MB 4077ms 1520ms kotlin/native 2.1.20
kotlin 2n.kt timeout 0.0ms 30.4MB 5163ms 130ms kotlin/native 2.1.20

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 2.v 795ms 37ms 2.6MB 780ms 0ms v/clang+gc 0.4.10
kotlin 1-m.kt 992ms 27ms 355.5MB 1823ms 100ms kotlin/jvm 21
kotlin 1n.kt timeout 0.0ms 26.6MB 4110ms 1483ms kotlin/native 2.1.20
kotlin 2n.kt timeout 0.0ms 30.9MB 5130ms 163ms 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.6MB 5427ms 47ms kotlin/jvm 21
kotlin 1n.kt timeout 0.0ms 226.8MB 5100ms 123ms kotlin/native 2.1.20
v 1.v timeout 0.0ms 83.0MB 4983ms 3ms v/clang+gc 0.4.10

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
kotlin 1-m.kt 856ms 18ms 134.4MB 1317ms 43ms kotlin/jvm 21
kotlin 1n.kt 3255ms 36ms 51.1MB 3353ms 73ms kotlin/native 2.1.20
v 1.v 3588ms 122ms 26.0MB 3577ms 0ms v/clang+gc 0.4.10

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v timeout 0.0ms 1.6MB 4990ms 0ms v/clang 0.4.10
v 1.v timeout 0.0ms 2.8MB 4990ms 0ms v/clang+gc 0.4.10

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 1284ms 0.9ms 1.5MB 1277ms 0ms v/clang 0.4.10
v 1.v 1299ms 2.5ms 2.5MB 1290ms 0ms v/clang+gc 0.4.10

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
v 1.v 325ms 1.3ms 1.5MB 320ms 0ms v/clang 0.4.10
v 1.v 326ms 0.2ms 2.5MB 320ms 0ms v/clang+gc 0.4.10