Swift VS Zig benchmarks

Current benchmark data was generated on Wed May 25 2022, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz (Model 85)

* -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.)

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 1127ms 11ms 0.0MB 2177ms 0ms zig 0.10.0
zig 2.zig 2403ms 4.4ms 0.0MB 2387ms 3ms zig 0.10.0
swift 1.swift 2827ms 209ms 5.2MB 2813ms 0ms swift 5.6.1
zig 1.zig 3174ms 228ms 0.1MB 3163ms 0ms zig 0.10.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2-m.zig 99ms 0.3ms 0.0MB 170ms 0ms zig 0.10.0
zig 2.zig 197ms 14ms 0.0MB 183ms 0ms zig 0.10.0
swift 1.swift 259ms 3.3ms 5.2MB 247ms 0ms swift 5.6.1
zig 1.zig 269ms 8.6ms 0.1MB 257ms 0ms zig 0.10.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 138ms 0.7ms 0.0MB 120ms 0ms zig 0.10.0
swift 3-m.swift 300ms 5.8ms 21.0MB 530ms 10ms swift 5.6.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 16ms 0.3ms 0.0MB 10ms 0ms zig 0.10.0
swift 3.swift 47ms 1.6ms 14.7MB 43ms 0ms swift 5.6.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 1.8ms 0.8ms 0.1MB 0ms 0ms zig 0.10.0
swift 1.swift 3.0ms 1.8ms 2.4MB 0ms 0ms swift 5.6.1

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 2-m.swift 1976ms 37ms 42.7MB 3600ms 23ms swift 5.6.1

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 2-m.swift 357ms 25ms 31.9MB 557ms 23ms swift 5.6.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 255ms 2.2ms 0.0MB 240ms 0ms zig 0.10.0
zig 1.zig 383ms 3.0ms 0.0MB 370ms 0ms zig 0.10.0
swift 7.swift 428ms 28ms 5.4MB 420ms 0ms swift 5.6.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 2.zig 29ms 2.9ms 0.0MB 20ms 0ms zig 0.10.0
zig 1.zig 41ms 1.0ms 0.0MB 30ms 0ms zig 0.10.0
swift 7.swift 43ms 0.7ms 5.4MB 33ms 0ms swift 5.6.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 1.swift timeout 0.0ms 0.0MB 0ms 0ms swift 5.6.1
zig 1.zig timeout 0.0ms 0.0MB 0ms 0ms zig 0.10.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
zig 1.zig 2845ms 10ms 0.4MB 1060ms 1770ms zig 0.10.0
swift 1.swift 3278ms 2.4ms 6.4MB 3260ms 0ms swift 5.6.1