All D benchmarks

Current benchmark data was generated on Wed Mar 22 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 2204ms 7.0ms 312.3MB 2123ms 80ms ldc2 1.31.0
1.d 3397ms 10ms 314.5MB 3483ms 57ms dmd 2.102.2

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 231ms 2.9ms 208.4MB 180ms 40ms ldc2 1.31.0
1.d 327ms 2.4ms 210.8MB 270ms 40ms dmd 2.102.2

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d timeout 0.0ms 15.2MB 4963ms 17ms dmd 2.102.2
1.d timeout 0.0ms 14.2MB 4963ms 17ms ldc2 1.31.0

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1340ms 6.9ms 10.4MB 1323ms 3ms ldc2 1.31.0
1.d 1590ms 13ms 10.3MB 1573ms 3ms dmd 2.102.2

edigits

Input: 250001

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 3819ms 2.0ms 8.2MB 3810ms 0ms ldc2 1.31.0
1.d 4409ms 6.9ms 9.8MB 4393ms 0ms dmd 2.102.2

Input: 100000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 651ms 1.1ms 7.1MB 640ms 0ms ldc2 1.31.0
1.d 797ms 2.3ms 9.4MB 780ms 0ms dmd 2.102.2

fannkuch-redux

Input: 11

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-im.d 782ms 21ms 1.6MB 1483ms 0ms ldc2 1.31.0
1-i.d 1464ms 7.9ms 1.5MB 1453ms 0ms ldc2 1.31.0
2-im.d 2559ms 5.0ms 1.6MB 4957ms 0ms ldc2 1.31.0
1.d 4334ms 34ms 1.6MB 4317ms 0ms ldc2 1.31.0
2-i.d 4889ms 2.6ms 1.6MB 4877ms 0ms ldc2 1.31.0
1.d 4954ms 10ms 2.9MB 4947ms 0ms dmd 2.102.2
1-i.d timeout 0.0ms 2.8MB 4987ms 0ms dmd 2.102.2
1-im.d timeout 0.0ms 2.9MB 9770ms 0ms dmd 2.102.2
2-i.d timeout 0.0ms 2.9MB 4990ms 0ms dmd 2.102.2
2-im.d timeout 0.0ms 2.9MB 9807ms 3ms dmd 2.102.2

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-im.d 72ms 2.9ms 3.3MB 120ms 0ms ldc2 1.31.0
1-i.d 124ms 0.7ms 1.6MB 113ms 0ms ldc2 1.31.0
2-im.d 222ms 0.5ms 1.6MB 400ms 0ms ldc2 1.31.0
1.d 355ms 1.6ms 1.6MB 343ms 0ms ldc2 1.31.0
2-i.d 405ms 1.5ms 1.6MB 390ms 0ms ldc2 1.31.0
1.d 416ms 1.3ms 2.9MB 410ms 0ms dmd 2.102.2
1-im.d 426ms 6.2ms 4.6MB 810ms 0ms dmd 2.102.2
2-im.d 802ms 1.1ms 4.8MB 1537ms 0ms dmd 2.102.2
1-i.d 838ms 2.9ms 2.7MB 820ms 0ms dmd 2.102.2
2-i.d 1437ms 1.3ms 2.9MB 1427ms 0ms dmd 2.102.2

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 238ms 0.7ms 31.1MB 220ms 3ms ldc2 1.31.0
1.d 792ms 1.1ms 39.0MB 773ms 10ms dmd 2.102.2

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 28ms 0.8ms 6.1MB 20ms 0ms ldc2 1.31.0
1.d 82ms 0.2ms 13.4MB 70ms 0ms dmd 2.102.2

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 2.3ms 0.6ms 3.0MB 0ms 0ms ldc2 1.31.0
1.d 2.8ms 0.7ms 4.7MB 0ms 0ms dmd 2.102.2

http-server

Input: 3000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2-m.d 5.0ms 8.6ms 17.4MB 310ms 230ms dmd 2.102.2
1.d timeout 0.0ms 17.4MB 615ms 415ms dmd 2.102.2
1.d timeout 0.0ms 13.4MB 0ms 0ms ldc2 1.31.0
2.d timeout 0.0ms 14.8MB 370ms 443ms ldc2 1.31.0

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 3.3ms 5.8ms 17.4MB 0ms 0ms ldc2 1.31.0
1.d timeout 0.0ms 17.4MB 40ms 50ms dmd 2.102.2
2.d timeout 0.0ms 18.8MB 115ms 60ms dmd 2.102.2
1.d timeout 0.0ms 14.6MB 70ms 60ms ldc2 1.31.0

json-serde

Input: sample 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 75ms 0.9ms 15.8MB 70ms 0ms ldc2 1.31.0
2.d 332ms 2.8ms 22.1MB 323ms 0ms dmd 2.102.2

Input: canada 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 627ms 2.4ms 138.5MB 583ms 27ms ldc2 1.31.0
2.d 3548ms 3.7ms 157.0MB 3577ms 23ms dmd 2.102.2

knucleotide

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.d 1129ms 32ms 59.8MB 2063ms 17ms ldc2 1.31.0
1-m.d 4409ms 60ms 52.0MB 8357ms 23ms dmd 2.102.2

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.d 143ms 5.7ms 38.1MB 233ms 7ms ldc2 1.31.0
1-m.d 479ms 5.0ms 41.0MB 863ms 13ms dmd 2.102.2

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 175ms 0.4ms 3.8MB 170ms 0ms ldc2 1.31.0
1.d 254ms 1.3ms 5.6MB 243ms 0ms dmd 2.102.2

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 517ms 2.2ms 3.8MB 507ms 0ms ldc2 1.31.0
1.d 745ms 2.7ms 7.2MB 733ms 0ms dmd 2.102.2

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 75ms 0.5ms 3.9MB 63ms 0ms ldc2 1.31.0
1.d 112ms 1.4ms 5.4MB 103ms 0ms dmd 2.102.2

mandelbrot

Input: 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 698ms 0.5ms 7.3MB 687ms 0ms ldc2 1.31.0
1.d 2529ms 3.3ms 9.0MB 2517ms 0ms dmd 2.102.2

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 32ms 0.2ms 3.2MB 20ms 0ms ldc2 1.31.0
1.d 111ms 3.5ms 4.4MB 100ms 0ms dmd 2.102.2

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1217ms 4.0ms 312.8MB 1143ms 67ms ldc2 1.31.0
1.d 2057ms 19ms 313.7MB 2077ms 67ms dmd 2.102.2

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 300ms 2.3ms 312.7MB 223ms 63ms ldc2 1.31.0
1.d 456ms 4.9ms 314.4MB 380ms 60ms dmd 2.102.2

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 450ms 0.3ms 1.6MB 440ms 0ms ldc2 1.31.0
2.d 468ms 0.4ms 1.6MB 460ms 0ms ldc2 1.31.0
1.d 1542ms 1.2ms 2.9MB 1530ms 0ms dmd 2.102.2
2.d 2285ms 14ms 2.9MB 2273ms 0ms dmd 2.102.2

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 50ms 0.5ms 1.6MB 40ms 0ms ldc2 1.31.0
1.d 51ms 3.7ms 1.6MB 40ms 0ms ldc2 1.31.0
1.d 159ms 2.2ms 2.8MB 150ms 0ms dmd 2.102.2
2.d 232ms 2.6ms 2.8MB 223ms 0ms dmd 2.102.2

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.d 880ms 1.5ms 47.5MB 853ms 10ms ldc2 1.31.0
1.d 905ms 4.8ms 43.5MB 880ms 7ms ldc2 1.31.0
1.d 982ms 27ms 75.9MB 957ms 13ms dmd 2.102.2
2.d 1614ms 4.6ms 48.9MB 1583ms 13ms dmd 2.102.2

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 126ms 0.6ms 14.0MB 110ms 0ms ldc2 1.31.0
1.d 135ms 0.3ms 24.6MB 120ms 0ms dmd 2.102.2
2.d 211ms 0.9ms 15.5MB 200ms 0ms ldc2 1.31.0
2.d 401ms 1.7ms 16.7MB 390ms 0ms dmd 2.102.2

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 3432ms 5.5ms 8.0MB 3420ms 7ms ldc2 1.31.0
1.d timeout 0.0ms 9.7MB 4980ms 10ms dmd 2.102.2

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 815ms 1.1ms 8.0MB 797ms 3ms ldc2 1.31.0
1.d 1676ms 4.1ms 9.6MB 1663ms 3ms dmd 2.102.2

regex-redux

Input: 2500000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.d 722ms 1.4ms 170.5MB 943ms 33ms ldc2 1.31.0
3.d 1622ms 18ms 171.1MB 1857ms 43ms dmd 2.102.2

Input: 250000_in

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
3.d 76ms 1.3ms 24.2MB 87ms 3ms ldc2 1.31.0
3.d 171ms 1.9ms 26.0MB 190ms 0ms dmd 2.102.2

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.102.2
1.d timeout 0.0ms 3.9MB 4980ms 7ms ldc2 1.31.0

Input: 500

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1424ms 4.7ms 3.9MB 1417ms 0ms ldc2 1.31.0
1.d 3329ms 2.7ms 6.3MB 3320ms 0ms dmd 2.102.2

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 4290ms 0.2ms 3.8MB 4277ms 0ms ldc2 1.31.0
1.d 4783ms 1.1ms 6.0MB 4770ms 0ms dmd 2.102.2

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 1076ms 0.9ms 3.6MB 1063ms 0ms ldc2 1.31.0
1.d 1199ms 0.6ms 5.0MB 1187ms 0ms dmd 2.102.2

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.d 273ms 0.3ms 3.1MB 260ms 0ms ldc2 1.31.0
1.d 304ms 2.4ms 4.5MB 290ms 0ms dmd 2.102.2