All D benchmarks

Current benchmark data was generated on Sun Dec 01 2024, 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

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1733ms 100ms 312.5MB 1707ms 33ms ldc2 1.39.0
1.d 2677ms 15ms 314.4MB 2853ms 47ms dmd 2.109.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 157ms 1.1ms 208.7MB 130ms 13ms ldc2 1.39.0
1.d 235ms 9.2ms 209.9MB 203ms 13ms dmd 2.109.1

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d timeout 0.0ms 16.1MB 4970ms 20ms dmd 2.109.1
1.d timeout 0.0ms 15.5MB 4960ms 27ms ldc2 1.39.0

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1034ms 18ms 8.4MB 1010ms 10ms ldc2 1.39.0
1.d 1318ms 12ms 10.6MB 1300ms 7ms dmd 2.109.1

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 2550ms 21ms 8.0MB 2537ms 0ms ldc2 1.39.0
1.d 2923ms 8.2ms 10.5MB 2910ms 10ms dmd 2.109.1

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 439ms 0.9ms 8.1MB 423ms 0ms ldc2 1.39.0
1.d 534ms 2.0ms 10.2MB 523ms 0ms dmd 2.109.1

fannkuch-redux

Input: 11

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-im.d 399ms 45ms 5.1MB 1410ms 0ms ldc2 1.39.0
2-im.d 1114ms 10ms 5.1MB 4297ms 0ms ldc2 1.39.0
1-i.d 1488ms 14ms 2.9MB 1480ms 0ms ldc2 1.39.0
1.d 3139ms 35ms 2.9MB 3130ms 0ms ldc2 1.39.0
2-i.d 3221ms 2.5ms 2.9MB 3210ms 0ms ldc2 1.39.0
1.d 3537ms 17ms 4.6MB 3523ms 0ms dmd 2.109.1
1-im.d 4241ms 40ms 8.9MB 16490ms 7ms dmd 2.109.1
1-i.d timeout 0.0ms 4.5MB 4987ms 0ms dmd 2.109.1
2-i.d timeout 0.0ms 4.6MB 4990ms 0ms dmd 2.109.1
2-im.d timeout 0.0ms 6.8MB 19780ms 7ms dmd 2.109.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-im.d 40ms 1.9ms 5.1MB 110ms 0ms ldc2 1.39.0
2-im.d 110ms 20ms 6.9MB 337ms 3ms ldc2 1.39.0
1-i.d 124ms 0.4ms 2.8MB 110ms 0ms ldc2 1.39.0
1.d 263ms 2.2ms 2.8MB 253ms 0ms ldc2 1.39.0
2-i.d 266ms 0.8ms 2.8MB 260ms 0ms ldc2 1.39.0
1.d 296ms 2.0ms 4.5MB 287ms 0ms dmd 2.109.1
1-im.d 359ms 0.1ms 8.9MB 1343ms 0ms dmd 2.109.1
2-im.d 545ms 24ms 6.8MB 1990ms 0ms dmd 2.109.1
1-i.d 860ms 8.9ms 4.5MB 850ms 0ms dmd 2.109.1
2-i.d 1389ms 18ms 4.5MB 1377ms 0ms dmd 2.109.1

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 196ms 1.3ms 33.2MB 177ms 7ms ldc2 1.39.0
1.d 620ms 0.6ms 51.0MB 610ms 0ms dmd 2.109.1

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 24ms 0.1ms 8.1MB 20ms 0ms ldc2 1.39.0
1.d 67ms 1.4ms 10.1MB 53ms 7ms dmd 2.109.1

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1.4ms 0.8ms 3.0MB 0ms 0ms ldc2 1.39.0
1.d 2.2ms 0.4ms 5.0MB 0ms 0ms dmd 2.109.1

json-serde

Input: sample 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 59ms 0.4ms 15.7MB 57ms 3ms ldc2 1.39.0
2.d 238ms 0.6ms 22.7MB 243ms 7ms dmd 2.109.1

Input: canada 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 470ms 2.4ms 141.5MB 433ms 37ms ldc2 1.39.0
2.d 2491ms 23ms 161.0MB 2517ms 23ms dmd 2.109.1

knucleotide

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.d 715ms 16ms 51.1MB 2293ms 20ms ldc2 1.39.0
1-m.d 1907ms 5.2ms 61.4MB 5853ms 10ms dmd 2.109.1

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.d 127ms 22ms 43.7MB 313ms 7ms ldc2 1.39.0
1-m.d 223ms 7.0ms 43.9MB 627ms 17ms dmd 2.109.1

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 125ms 0.6ms 5.8MB 117ms 3ms ldc2 1.39.0
1.d 181ms 0.7ms 7.8MB 170ms 3ms dmd 2.109.1

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 359ms 0.1ms 5.8MB 350ms 10ms ldc2 1.39.0
1.d 531ms 3.4ms 8.1MB 510ms 20ms dmd 2.109.1

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 55ms 0.6ms 5.9MB 50ms 0ms ldc2 1.39.0
1.d 81ms 0.9ms 7.9MB 73ms 0ms dmd 2.109.1

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 407ms 2.1ms 6.7MB 390ms 0ms ldc2 1.39.0
1.d 2343ms 397ms 9.3MB 2330ms 0ms dmd 2.109.1

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 20ms 0.3ms 3.0MB 10ms 0ms ldc2 1.39.0
1.d 91ms 1.2ms 4.5MB 80ms 0ms dmd 2.109.1

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 945ms 3.3ms 312.5MB 900ms 43ms ldc2 1.39.0
1.d 1727ms 10ms 314.5MB 1840ms 57ms dmd 2.109.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 195ms 0.7ms 312.7MB 153ms 30ms ldc2 1.39.0
1.d 338ms 0.9ms 314.8MB 293ms 33ms dmd 2.109.1

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 360ms 1.4ms 2.8MB 347ms 0ms ldc2 1.39.0
1.d 360ms 1.1ms 2.9MB 350ms 0ms ldc2 1.39.0
1.d 679ms 3.1ms 4.6MB 667ms 0ms dmd 2.109.1
2.d 2034ms 49ms 4.6MB 2023ms 0ms dmd 2.109.1

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 39ms 0.2ms 2.9MB 30ms 0ms ldc2 1.39.0
2.d 39ms 0.1ms 2.8MB 30ms 0ms ldc2 1.39.0
1.d 71ms 0.3ms 4.6MB 60ms 0ms dmd 2.109.1
2.d 208ms 1.2ms 4.6MB 200ms 0ms dmd 2.109.1

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 315ms 3.8ms 77.2MB 293ms 0ms dmd 2.109.1
1.d 320ms 5.7ms 43.7MB 293ms 10ms ldc2 1.39.0
2.d 817ms 3.4ms 47.7MB 800ms 3ms ldc2 1.39.0
2.d 1161ms 3.7ms 49.3MB 1140ms 3ms dmd 2.109.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 65ms 1.0ms 13.7MB 53ms 0ms ldc2 1.39.0
1.d 67ms 1.7ms 24.0MB 57ms 0ms dmd 2.109.1
2.d 206ms 0.2ms 15.7MB 193ms 0ms ldc2 1.39.0
2.d 291ms 1.2ms 17.6MB 277ms 3ms dmd 2.109.1

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 2406ms 16ms 7.9MB 2367ms 377ms ldc2 1.39.0
1.d 4355ms 15ms 10.1MB 4377ms 377ms dmd 2.109.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 585ms 12ms 8.1MB 567ms 120ms ldc2 1.39.0
1.d 1036ms 3.9ms 10.2MB 1010ms 113ms dmd 2.109.1

regex-redux

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.d 646ms 60ms 170.7MB 847ms 20ms ldc2 1.39.0
3.d 1336ms 1.5ms 173.4MB 1517ms 23ms dmd 2.109.1

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.d 71ms 4.6ms 26.6MB 80ms 3ms ldc2 1.39.0
3.d 144ms 4.9ms 28.3MB 153ms 0ms dmd 2.109.1

secp256k1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 4776ms 13ms 4.0MB 4740ms 333ms ldc2 1.39.0
1.d timeout 0.0ms 6.4MB 4997ms 250ms dmd 2.109.1

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1207ms 11ms 3.9MB 1193ms 83ms ldc2 1.39.0
1.d 2052ms 57ms 6.6MB 2020ms 140ms dmd 2.109.1

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 3581ms 0.9ms 4.0MB 3570ms 0ms ldc2 1.39.0
1.d 3647ms 53ms 5.9MB 3633ms 0ms dmd 2.109.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 897ms 1.4ms 3.6MB 887ms 0ms ldc2 1.39.0
1.d 909ms 3.9ms 5.3MB 897ms 0ms dmd 2.109.1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 227ms 0.3ms 3.3MB 220ms 0ms ldc2 1.39.0
1.d 230ms 0.5ms 4.8MB 220ms 0ms dmd 2.109.1