D VS Acton 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

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 2204ms 7.0ms 312.3MB 2123ms 80ms ldc2 1.31.0
d 1.d 3397ms 10ms 314.5MB 3483ms 57ms dmd 2.102.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 231ms 2.9ms 208.4MB 180ms 40ms ldc2 1.31.0
d 1.d 327ms 2.4ms 210.8MB 270ms 40ms dmd 2.102.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 15.2MB 4963ms 17ms dmd 2.102.2
d 1.d timeout 0.0ms 14.2MB 4963ms 17ms ldc2 1.31.0

Input: 1000

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

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 539ms 20ms 7.4MB 490ms 20ms actonc 0.14.2
d 1.d 3819ms 2.0ms 8.2MB 3810ms 0ms ldc2 1.31.0
d 1.d 4409ms 6.9ms 9.8MB 4393ms 0ms dmd 2.102.2

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 235ms 21ms 5.3MB 195ms 0ms actonc 0.14.2
d 1.d 651ms 1.1ms 7.1MB 640ms 0ms ldc2 1.31.0
d 1.d 797ms 2.3ms 9.4MB 780ms 0ms dmd 2.102.2

fannkuch-redux

Input: 11

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

Input: 10

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

fasta

Input: 2500000

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

Input: 250000

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

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 2.3ms 0.6ms 3.0MB 0ms 0ms ldc2 1.31.0
d 1.d 2.8ms 0.7ms 4.7MB 0ms 0ms dmd 2.102.2
acton 1.act 8.0ms 3.1ms 3.4MB 0ms 0ms actonc 0.14.2

http-server

Input: 3000

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

Input: 500

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

json-serde

Input: sample 5000

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

Input: canada 15

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

knucleotide

Input: 2500000_in

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

Input: 250000_in

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

lru

Input: 1000 1000000

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

Input: 1000 3000000

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

Input: 100 500000

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

mandelbrot

Input: 5000

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

Input: 1000

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

merkletrees

Input: 17

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

Input: 15

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

nbody

Input: 5000000

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

Input: 500000

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

nsieve

Input: 12

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

Input: 10

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

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 3432ms 5.5ms 8.0MB 3420ms 7ms ldc2 1.31.0
acton 1.act 4313ms 37ms 7.9MB 3970ms 700ms actonc 0.14.2
d 1.d timeout 0.0ms 9.7MB 4980ms 10ms dmd 2.102.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 815ms 1.1ms 8.0MB 797ms 3ms ldc2 1.31.0
acton 1.act 1394ms 250ms 6.8MB 1220ms 253ms actonc 0.14.2
d 1.d 1676ms 4.1ms 9.6MB 1663ms 3ms dmd 2.102.2

regex-redux

Input: 2500000_in

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

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 3.d 76ms 1.3ms 24.2MB 87ms 3ms ldc2 1.31.0
d 3.d 171ms 1.9ms 26.0MB 190ms 0ms dmd 2.102.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.4MB 4987ms 0ms dmd 2.102.2
d 1.d timeout 0.0ms 3.9MB 4980ms 7ms ldc2 1.31.0

Input: 500

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

spectral-norm

Input: 8000

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

Input: 4000

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

Input: 2000

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