Codon VS D benchmarks

Current benchmark data was generated on Sun Jan 29 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.)

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 2.3ms 0.9ms 2.9MB 0ms 0ms ldc2 1.30.0
d 1.d 2.6ms 0.5ms 4.8MB 0ms 0ms dmd 2.101.2
codon 1.py 4.1ms 0.8ms 5.3MB 0ms 0ms codon 0.15.4

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 409ms 0.9ms 1.5MB 400ms 0ms ldc2 1.30.0
d 2.d 423ms 0.6ms 1.5MB 410ms 0ms ldc2 1.30.0
d 1.d 1539ms 0.4ms 2.8MB 1527ms 0ms dmd 2.101.2
codon 1.py 1947ms 23ms 5.3MB 1933ms 0ms codon 0.15.4
d 2.d 2424ms 10ms 2.9MB 2410ms 0ms dmd 2.101.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 44ms 1.7ms 1.5MB 30ms 0ms ldc2 1.30.0
d 2.d 46ms 1.3ms 1.6MB 33ms 0ms ldc2 1.30.0
d 1.d 157ms 0.3ms 2.8MB 147ms 0ms dmd 2.101.2
codon 1.py 197ms 0.8ms 5.3MB 187ms 0ms codon 0.15.4
d 2.d 245ms 0.4ms 2.8MB 233ms 0ms dmd 2.101.2

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 728ms 11ms 43.6MB 700ms 10ms ldc2 1.30.0
d 1.d 756ms 17ms 75.6MB 730ms 10ms dmd 2.101.2
codon 1.py 873ms 79ms 48.3MB 850ms 3ms codon 0.15.4
d 2.d 889ms 6.1ms 48.7MB 860ms 10ms ldc2 1.30.0
codon 2.py 1003ms 24ms 106.7MB 977ms 13ms codon 0.15.4
d 2.d 1521ms 1.1ms 50.2MB 1497ms 7ms dmd 2.101.2

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
d 1.d 127ms 0.4ms 14.5MB 113ms 0ms ldc2 1.30.0
d 1.d 134ms 2.0ms 24.5MB 120ms 0ms dmd 2.101.2
codon 1.py 150ms 0.2ms 15.1MB 133ms 3ms codon 0.15.4
codon 2.py 185ms 3.8ms 23.9MB 173ms 3ms codon 0.15.4
d 2.d 211ms 1.0ms 14.9MB 193ms 0ms ldc2 1.30.0
d 2.d 378ms 0.2ms 16.6MB 363ms 0ms dmd 2.101.2