D VS Codon benchmarks

Current benchmark data was generated on Sun Jan 29 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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
d 1.d 3003ms 66ms 75.1MB 3223ms 10ms ldc2 1.30.0
d 1.d 4406ms 497ms 154.2MB 4923ms 43ms dmd 2.101.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 262ms 5.5ms 15.1MB 253ms 0ms ldc2 1.30.0
d 1.d 353ms 2.6ms 27.3MB 360ms 7ms dmd 2.101.2

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d timeout 0.0ms 13.6MB 4983ms 0ms dmd 2.101.2
d 1.d timeout 0.0ms 14.3MB 4970ms 10ms ldc2 1.30.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1283ms 21ms 10.2MB 1263ms 3ms ldc2 1.30.0
d 1.d 1678ms 10ms 12.1MB 1660ms 7ms dmd 2.101.2

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 3813ms 1.4ms 7.8MB 3797ms 0ms ldc2 1.30.0
d 1.d 4394ms 9.6ms 9.8MB 4383ms 0ms dmd 2.101.2

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 651ms 0.2ms 7.0MB 637ms 0ms ldc2 1.30.0
d 1.d 794ms 0.1ms 8.8MB 780ms 0ms dmd 2.101.2

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-im.d 759ms 14ms 1.5MB 1430ms 0ms ldc2 1.30.0
d 1-i.d 1456ms 6.1ms 1.5MB 1443ms 0ms ldc2 1.30.0
d 2-im.d 2543ms 27ms 1.6MB 4950ms 0ms ldc2 1.30.0
d 1.d 4446ms 7.7ms 1.6MB 4433ms 0ms ldc2 1.30.0
d 2-i.d 4876ms 1.4ms 1.5MB 4863ms 0ms ldc2 1.30.0
d 1.d 4922ms 0.8ms 2.9MB 4910ms 0ms dmd 2.101.2
d 1-i.d timeout 0.0ms 2.5MB 4987ms 0ms dmd 2.101.2
d 1-im.d timeout 0.0ms 4.6MB 9810ms 3ms dmd 2.101.2
d 2-i.d timeout 0.0ms 2.9MB 4990ms 0ms dmd 2.101.2
d 2-im.d timeout 0.0ms 4.7MB 9827ms 0ms dmd 2.101.2

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-im.d 71ms 0.1ms 1.5MB 117ms 0ms ldc2 1.30.0
d 1-i.d 124ms 1.0ms 1.5MB 110ms 0ms ldc2 1.30.0
d 2-im.d 220ms 1.6ms 1.5MB 400ms 0ms ldc2 1.30.0
d 1.d 360ms 2.1ms 1.5MB 350ms 0ms ldc2 1.30.0
d 2-i.d 402ms 0.4ms 1.6MB 390ms 0ms ldc2 1.30.0
d 1.d 413ms 4.1ms 2.9MB 403ms 0ms dmd 2.101.2
d 1-im.d 461ms 6.2ms 4.6MB 877ms 0ms dmd 2.101.2
d 2-im.d 846ms 3.7ms 4.7MB 1610ms 0ms dmd 2.101.2
d 1-i.d 861ms 3.6ms 2.4MB 850ms 0ms dmd 2.101.2
d 2-i.d 1516ms 11ms 2.9MB 1503ms 0ms dmd 2.101.2

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 229ms 1.2ms 33.1MB 207ms 7ms ldc2 1.30.0
d 1.d 775ms 0.2ms 39.2MB 757ms 3ms dmd 2.101.2

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 27ms 1.0ms 6.7MB 17ms 0ms ldc2 1.30.0
d 1.d 81ms 0.5ms 12.6MB 70ms 0ms dmd 2.101.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 2.3ms 0.9ms 2.9MB 0ms 0ms ldc2 1.30.0
d 1.d 2.6ms 0.5ms 4.8MB 0ms 0ms dmd 2.101.2
codon 1.py 4.1ms 0.8ms 5.3MB 0ms 0ms codon 0.15.4

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 2.d 76ms 3.7ms 15.6MB 67ms 0ms ldc2 1.30.0
d 2.d 329ms 1.2ms 22.5MB 323ms 0ms dmd 2.101.2

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 2.d 609ms 2.5ms 141.3MB 573ms 20ms ldc2 1.30.0
d 2.d 3539ms 0.8ms 157.1MB 3573ms 27ms dmd 2.101.2

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-m.d 1088ms 23ms 51.1MB 1943ms 13ms ldc2 1.30.0
d 1-m.d 4122ms 159ms 53.1MB 7417ms 13ms dmd 2.101.2

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-m.d 135ms 4.9ms 39.9MB 220ms 0ms ldc2 1.30.0
d 1-m.d 425ms 8.2ms 43.8MB 753ms 10ms dmd 2.101.2

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 178ms 0.4ms 3.7MB 167ms 0ms ldc2 1.30.0
d 1.d 251ms 1.4ms 5.5MB 240ms 0ms dmd 2.101.2

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 523ms 1.9ms 5.7MB 510ms 0ms ldc2 1.30.0
d 1.d 745ms 5.4ms 5.4MB 737ms 0ms dmd 2.101.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 77ms 0.8ms 3.6MB 67ms 0ms ldc2 1.30.0
d 1.d 111ms 0.9ms 5.7MB 100ms 0ms dmd 2.101.2

mandelbrot

Input: 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 697ms 0.5ms 6.9MB 687ms 0ms ldc2 1.30.0
d 1.d 2720ms 3.1ms 8.2MB 2710ms 0ms dmd 2.101.2

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 32ms 0.2ms 2.9MB 20ms 0ms ldc2 1.30.0
d 1.d 115ms 0.3ms 4.0MB 100ms 0ms dmd 2.101.2

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1390ms 4.2ms 74.9MB 1450ms 10ms ldc2 1.30.0
d 1.d 2455ms 43ms 154.4MB 2757ms 30ms dmd 2.101.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 285ms 10ms 39.0MB 270ms 3ms ldc2 1.30.0
d 1.d 496ms 0.8ms 40.9MB 533ms 3ms dmd 2.101.2

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 409ms 0.9ms 1.5MB 400ms 0ms ldc2 1.30.0
d 2.d 423ms 0.6ms 1.5MB 410ms 0ms ldc2 1.30.0
d 1.d 1539ms 0.4ms 2.8MB 1527ms 0ms dmd 2.101.2
codon 1.py 1947ms 23ms 5.3MB 1933ms 0ms codon 0.15.4
d 2.d 2424ms 10ms 2.9MB 2410ms 0ms dmd 2.101.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 44ms 1.7ms 1.5MB 30ms 0ms ldc2 1.30.0
d 2.d 46ms 1.3ms 1.6MB 33ms 0ms ldc2 1.30.0
d 1.d 157ms 0.3ms 2.8MB 147ms 0ms dmd 2.101.2
codon 1.py 197ms 0.8ms 5.3MB 187ms 0ms codon 0.15.4
d 2.d 245ms 0.4ms 2.8MB 233ms 0ms dmd 2.101.2

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 728ms 11ms 43.6MB 700ms 10ms ldc2 1.30.0
d 1.d 756ms 17ms 75.6MB 730ms 10ms dmd 2.101.2
codon 1.py 873ms 79ms 48.3MB 850ms 3ms codon 0.15.4
d 2.d 889ms 6.1ms 48.7MB 860ms 10ms ldc2 1.30.0
codon 2.py 1003ms 24ms 106.7MB 977ms 13ms codon 0.15.4
d 2.d 1521ms 1.1ms 50.2MB 1497ms 7ms dmd 2.101.2

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 127ms 0.4ms 14.5MB 113ms 0ms ldc2 1.30.0
d 1.d 134ms 2.0ms 24.5MB 120ms 0ms dmd 2.101.2
codon 1.py 150ms 0.2ms 15.1MB 133ms 3ms codon 0.15.4
codon 2.py 185ms 3.8ms 23.9MB 173ms 3ms codon 0.15.4
d 2.d 211ms 1.0ms 14.9MB 193ms 0ms ldc2 1.30.0
d 2.d 378ms 0.2ms 16.6MB 363ms 0ms dmd 2.101.2

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 3457ms 10.0ms 7.8MB 3447ms 0ms ldc2 1.30.0
d 1.d timeout 0.0ms 9.9MB 4990ms 0ms dmd 2.101.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 816ms 1.6ms 7.8MB 800ms 3ms ldc2 1.30.0
d 1.d 1729ms 7.1ms 9.6MB 1713ms 0ms dmd 2.101.2

regex-redux

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 3.d 742ms 8.9ms 167.5MB 947ms 50ms ldc2 1.30.0
d 3.d 1640ms 1.7ms 171.7MB 1880ms 37ms dmd 2.101.2

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 3.d 79ms 2.2ms 22.4MB 87ms 3ms ldc2 1.30.0
d 3.d 173ms 2.4ms 26.2MB 187ms 3ms dmd 2.101.2

secp256k1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d timeout 0.0ms 6.1MB 4990ms 0ms dmd 2.101.2
d 1.d timeout 0.0ms 3.8MB 4983ms 7ms ldc2 1.30.0

Input: 500

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1435ms 3.7ms 3.9MB 1420ms 3ms ldc2 1.30.0
d 1.d 3248ms 5.0ms 5.9MB 3240ms 0ms dmd 2.101.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 4292ms 3.4ms 3.8MB 4277ms 0ms ldc2 1.30.0
d 1.d 4779ms 0.4ms 5.7MB 4770ms 0ms dmd 2.101.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1075ms 0.1ms 3.4MB 1063ms 0ms ldc2 1.30.0
d 1.d 1199ms 1.8ms 5.4MB 1190ms 0ms dmd 2.101.2

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 271ms 0.5ms 3.0MB 260ms 0ms ldc2 1.30.0
d 1.d 304ms 0.8ms 4.7MB 290ms 0ms dmd 2.101.2