All D benchmarks

Current benchmark data was generated on Thu Jul 13 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

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 2245ms 7.0ms 312.3MB 2157ms 90ms ldc2 1.32.2
1.d 3381ms 23ms 314.1MB 3427ms 87ms dmd 2.104.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 248ms 1.3ms 206.3MB 187ms 47ms ldc2 1.32.2
1.d 343ms 1.5ms 209.2MB 263ms 60ms dmd 2.104.1

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d timeout 0.0ms 14.9MB 4977ms 3ms dmd 2.104.1
1.d timeout 0.0ms 14.6MB 4963ms 13ms ldc2 1.32.2

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1328ms 8.0ms 8.3MB 1313ms 3ms ldc2 1.32.2
1.d 1594ms 11ms 10.3MB 1580ms 3ms dmd 2.104.1

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 3810ms 0.7ms 7.9MB 3800ms 0ms ldc2 1.32.2
1.d 4427ms 5.5ms 9.7MB 4410ms 0ms dmd 2.104.1

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 650ms 0.6ms 6.9MB 640ms 0ms ldc2 1.32.2
1.d 799ms 0.5ms 9.7MB 783ms 3ms dmd 2.104.1

fannkuch-redux

Input: 11

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-im.d 764ms 7.7ms 1.6MB 1467ms 0ms ldc2 1.32.2
1-i.d 1437ms 2.6ms 1.5MB 1423ms 0ms ldc2 1.32.2
2-im.d 2472ms 20ms 1.6MB 4823ms 0ms ldc2 1.32.2
1.d 4308ms 0.9ms 1.5MB 4297ms 0ms ldc2 1.32.2
2-i.d 4780ms 2.9ms 1.5MB 4767ms 0ms ldc2 1.32.2
1.d 4942ms 3.0ms 2.9MB 4927ms 0ms dmd 2.104.1
1-i.d timeout 0.0ms 2.8MB 4987ms 0ms dmd 2.104.1
1-im.d timeout 0.0ms 2.9MB 9707ms 3ms dmd 2.104.1
2-i.d timeout 0.0ms 2.9MB 4990ms 0ms dmd 2.104.1
2-im.d timeout 0.0ms 2.9MB 9800ms 3ms dmd 2.104.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-im.d 73ms 0.7ms 1.6MB 120ms 0ms ldc2 1.32.2
1-i.d 122ms 0.6ms 1.5MB 110ms 0ms ldc2 1.32.2
2-im.d 215ms 5.5ms 3.1MB 390ms 0ms ldc2 1.32.2
1.d 360ms 1.7ms 1.5MB 350ms 0ms ldc2 1.32.2
2-i.d 395ms 0.5ms 1.5MB 380ms 0ms ldc2 1.32.2
1.d 413ms 1.0ms 2.8MB 403ms 0ms dmd 2.104.1
1-im.d 428ms 2.0ms 4.6MB 803ms 0ms dmd 2.104.1
1-i.d 807ms 0.7ms 2.7MB 797ms 0ms dmd 2.104.1
2-im.d 885ms 158ms 4.9MB 1530ms 0ms dmd 2.104.1
2-i.d 1438ms 0.3ms 2.8MB 1423ms 0ms dmd 2.104.1

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 226ms 3.2ms 28.8MB 207ms 3ms ldc2 1.32.2
1.d 761ms 1.2ms 40.3MB 747ms 3ms dmd 2.104.1

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 26ms 1.1ms 7.1MB 20ms 0ms ldc2 1.32.2
1.d 80ms 0.8ms 12.6MB 67ms 0ms dmd 2.104.1

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 2.1ms 0.6ms 3.0MB 0ms 0ms ldc2 1.32.2
1.d 2.7ms 0.7ms 4.8MB 0ms 0ms dmd 2.104.1

http-server

Input: 3000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d timeout 0.0ms 20.5MB 590ms 427ms dmd 2.104.1
2.d timeout 0.0ms 17.7MB 620ms 405ms dmd 2.104.1
1.d timeout 0.0ms 16.4MB 380ms 425ms ldc2 1.32.2
2.d timeout 0.0ms 14.8MB 430ms 390ms ldc2 1.32.2

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d timeout 0.0ms 17.9MB 10ms 0ms dmd 2.104.1
2.d timeout 0.0ms 19.4MB 77ms 40ms dmd 2.104.1
1.d timeout 0.0ms 15.4MB 50ms 80ms ldc2 1.32.2
2.d timeout 0.0ms 14.8MB 70ms 70ms ldc2 1.32.2

json-serde

Input: sample 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 76ms 2.3ms 15.4MB 73ms 0ms ldc2 1.32.2
2.d 340ms 0.8ms 22.1MB 330ms 0ms dmd 2.104.1

Input: canada 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 613ms 4.6ms 141.7MB 570ms 30ms ldc2 1.32.2
2.d 3697ms 8.0ms 155.8MB 3720ms 30ms dmd 2.104.1

knucleotide

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.d 1038ms 4.1ms 60.7MB 1817ms 17ms ldc2 1.32.2
1-m.d 4015ms 70ms 53.4MB 7140ms 17ms dmd 2.104.1

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.d 134ms 3.5ms 38.6MB 217ms 10ms ldc2 1.32.2
1-m.d 424ms 16ms 44.6MB 733ms 10ms dmd 2.104.1

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 176ms 1.5ms 3.8MB 167ms 0ms ldc2 1.32.2
1.d 255ms 0.2ms 5.9MB 243ms 0ms dmd 2.104.1

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 511ms 1.6ms 3.7MB 500ms 0ms ldc2 1.32.2
1.d 754ms 2.8ms 5.6MB 743ms 0ms dmd 2.104.1

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 75ms 1.0ms 3.8MB 60ms 0ms ldc2 1.32.2
1.d 111ms 0.1ms 5.4MB 100ms 0ms dmd 2.104.1

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 570ms 0.4ms 6.6MB 560ms 0ms ldc2 1.32.2
1.d 2563ms 3.9ms 8.0MB 2550ms 0ms dmd 2.104.1

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 26ms 0.2ms 3.0MB 17ms 0ms ldc2 1.32.2
1.d 122ms 24ms 4.4MB 110ms 0ms dmd 2.104.1

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1260ms 5.4ms 312.3MB 1167ms 90ms ldc2 1.32.2
1.d 2301ms 18ms 313.7MB 2297ms 80ms dmd 2.104.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 339ms 2.9ms 312.4MB 223ms 100ms ldc2 1.32.2
1.d 555ms 2.9ms 314.2MB 460ms 80ms dmd 2.104.1

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 413ms 0.6ms 1.5MB 400ms 0ms ldc2 1.32.2
2.d 424ms 0.0ms 1.5MB 413ms 0ms ldc2 1.32.2
1.d 1542ms 2.9ms 2.8MB 1530ms 0ms dmd 2.104.1
2.d 2291ms 1.1ms 2.9MB 2280ms 0ms dmd 2.104.1

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 44ms 0.7ms 1.6MB 33ms 0ms ldc2 1.32.2
2.d 45ms 0.3ms 1.5MB 37ms 0ms ldc2 1.32.2
1.d 157ms 0.7ms 2.9MB 147ms 0ms dmd 2.104.1
2.d 237ms 6.9ms 2.9MB 220ms 0ms dmd 2.104.1

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 562ms 13ms 43.1MB 537ms 10ms ldc2 1.32.2
1.d 607ms 7.4ms 75.9MB 587ms 3ms dmd 2.104.1
2.d 894ms 1.5ms 48.2MB 870ms 13ms ldc2 1.32.2
2.d 1533ms 3.0ms 50.2MB 1513ms 7ms dmd 2.104.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 128ms 3.5ms 13.9MB 117ms 0ms ldc2 1.32.2
1.d 139ms 1.0ms 23.8MB 127ms 0ms dmd 2.104.1
2.d 212ms 0.9ms 15.0MB 200ms 0ms ldc2 1.32.2
2.d 380ms 1.6ms 17.3MB 363ms 0ms dmd 2.104.1

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 3471ms 19ms 7.9MB 3450ms 17ms ldc2 1.32.2
1.d timeout 0.0ms 9.9MB 4983ms 7ms dmd 2.104.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 827ms 1.5ms 7.9MB 813ms 3ms ldc2 1.32.2
1.d 1739ms 3.6ms 9.9MB 1727ms 0ms dmd 2.104.1

regex-redux

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.d 745ms 1.0ms 167.7MB 953ms 50ms ldc2 1.32.2
3.d 1588ms 2.9ms 170.2MB 1823ms 40ms dmd 2.104.1

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.d 78ms 0.5ms 22.5MB 93ms 0ms ldc2 1.32.2
3.d 166ms 1.5ms 27.9MB 173ms 3ms dmd 2.104.1

secp256k1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d timeout 0.0ms 6.4MB 4987ms 0ms dmd 2.104.1
1.d timeout 0.0ms 3.9MB 4980ms 10ms ldc2 1.32.2

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1431ms 6.6ms 3.9MB 1420ms 0ms ldc2 1.32.2
1.d 3272ms 38ms 6.2MB 3260ms 0ms dmd 2.104.1

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 4286ms 2.3ms 3.8MB 4270ms 0ms ldc2 1.32.2
1.d 4780ms 4.8ms 5.3MB 4770ms 0ms dmd 2.104.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1074ms 0.2ms 3.6MB 1063ms 0ms ldc2 1.32.2
1.d 1199ms 0.9ms 5.1MB 1183ms 0ms dmd 2.104.1

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 272ms 0.5ms 3.0MB 260ms 0ms ldc2 1.32.2
1.d 304ms 0.4ms 5.0MB 290ms 0ms dmd 2.104.1