Swift VS D benchmarks

Current benchmark data was generated on Tue Mar 25 2025, 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

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1796ms 1.6ms 312.6MB 1770ms 33ms ldc2 1.40.1
d 1.d 2825ms 142ms 314.8MB 3023ms 47ms dmd 2.110.0
swift 1.swift 2950ms 76ms 53.9MB 2917ms 20ms swift 6.0.3

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 164ms 2.0ms 209.8MB 140ms 13ms ldc2 1.40.1
d 1.d 231ms 4.2ms 211.8MB 203ms 10ms dmd 2.110.0
swift 1.swift 237ms 1.1ms 11.9MB 227ms 0ms swift 6.0.3

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-im.d 374ms 3.2ms 2.9MB 1423ms 0ms ldc2 1.40.1
d 2-im.d 1118ms 5.5ms 3.1MB 4320ms 0ms ldc2 1.40.1
d 1-i.d 1486ms 1.8ms 2.9MB 1480ms 0ms ldc2 1.40.1
swift 1.swift 2483ms 17ms 5.6MB 2473ms 0ms swift 6.0.3
d 1.d 3116ms 13ms 2.9MB 3107ms 0ms ldc2 1.40.1
d 2-i.d 3239ms 1.2ms 2.9MB 3230ms 0ms ldc2 1.40.1
d 1.d 3554ms 9.4ms 4.6MB 3543ms 0ms dmd 2.110.0
d 1-im.d 4461ms 10ms 4.8MB 17470ms 7ms dmd 2.110.0
d 1-i.d timeout 0.0ms 4.5MB 4990ms 0ms dmd 2.110.0
d 2-i.d timeout 0.0ms 4.6MB 4990ms 0ms dmd 2.110.0
d 2-im.d timeout 0.0ms 4.9MB 19733ms 3ms dmd 2.110.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-im.d 37ms 0.1ms 3.0MB 110ms 0ms ldc2 1.40.1
d 2-im.d 98ms 2.1ms 3.1MB 350ms 0ms ldc2 1.40.1
d 1-i.d 126ms 2.3ms 2.9MB 120ms 0ms ldc2 1.40.1
swift 1.swift 214ms 1.8ms 6.3MB 207ms 0ms swift 6.0.3
d 1.d 265ms 2.7ms 2.9MB 257ms 0ms ldc2 1.40.1
d 2-i.d 268ms 0.7ms 2.9MB 260ms 0ms ldc2 1.40.1
d 1.d 297ms 1.1ms 4.6MB 290ms 0ms dmd 2.110.0
d 1-im.d 376ms 5.0ms 4.9MB 1430ms 0ms dmd 2.110.0
d 2-im.d 526ms 1.6ms 4.9MB 2010ms 0ms dmd 2.110.0
d 1-i.d 857ms 5.5ms 4.5MB 847ms 0ms dmd 2.110.0
d 2-i.d 1387ms 14ms 4.6MB 1377ms 0ms dmd 2.110.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 3-m.swift 135ms 1.1ms 20.9MB 387ms 0ms swift 6.0.3
d 1.d 194ms 1.4ms 49.1MB 180ms 0ms ldc2 1.40.1
d 1.d 628ms 6.9ms 45.2MB 613ms 7ms dmd 2.110.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 25ms 1.4ms 11.1MB 17ms 0ms ldc2 1.40.1
swift 3.swift 36ms 0.3ms 18.3MB 30ms 0ms swift 6.0.3
d 1.d 67ms 1.1ms 11.1MB 60ms 0ms dmd 2.110.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 1.6ms 0.1ms 3.0MB 0ms 0ms ldc2 1.40.1
d 1.d 2.2ms 0.3ms 5.0MB 0ms 0ms dmd 2.110.0
swift 1.swift 2.5ms 0.2ms 5.9MB 0ms 0ms swift 6.0.3

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-m.d 646ms 11ms 55.2MB 2187ms 10ms ldc2 1.40.1
swift 2-m.swift 1390ms 6.6ms 74.5MB 5083ms 30ms swift 6.0.3
d 1-m.d 1874ms 24ms 47.5MB 5737ms 10ms dmd 2.110.0

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1-m.d 96ms 3.1ms 38.7MB 253ms 10ms ldc2 1.40.1
d 1-m.d 206ms 5.7ms 38.1MB 603ms 10ms dmd 2.110.0
swift 2-m.swift 263ms 1.7ms 60.0MB 693ms 23ms swift 6.0.3

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 7.swift 345ms 1.2ms 9.8MB 340ms 0ms swift 6.0.3
d 1.d 362ms 1.8ms 2.9MB 350ms 0ms ldc2 1.40.1
d 2.d 362ms 0.4ms 2.9MB 350ms 0ms ldc2 1.40.1
d 1.d 682ms 4.0ms 4.6MB 673ms 0ms dmd 2.110.0
d 2.d 2040ms 13ms 4.6MB 2033ms 0ms dmd 2.110.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 2.d 39ms 0.1ms 2.9MB 30ms 0ms ldc2 1.40.1
d 1.d 39ms 0.4ms 2.9MB 30ms 0ms ldc2 1.40.1
swift 7.swift 40ms 0.2ms 9.8MB 30ms 0ms swift 6.0.3
d 1.d 71ms 0.3ms 4.6MB 60ms 0ms dmd 2.110.0
d 2.d 210ms 3.6ms 4.5MB 203ms 0ms dmd 2.110.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 2428ms 10.0ms 8.1MB 2400ms 390ms ldc2 1.40.1
d 1.d 4357ms 29ms 10.2MB 4283ms 490ms dmd 2.110.0
swift 1.swift timeout 0.0ms 7.1MB 4910ms 70ms swift 6.0.3

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 584ms 0.7ms 8.1MB 550ms 113ms ldc2 1.40.1
d 1.d 1028ms 5.0ms 10.2MB 1010ms 110ms dmd 2.110.0
swift 1.swift 1877ms 8.7ms 7.0MB 1863ms 0ms swift 6.0.3