Swift VS Rust benchmarks

Current benchmark data was generated on Wed Feb 08 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8171M 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
rust 3-im.rs 750ms 1.1ms 1.0MB 1453ms 0ms rustc 1.67.0
rust 2-im.rs 1071ms 12ms 1.0MB 2070ms 0ms rustc 1.67.0
rust 5-m.rs 1427ms 22ms 1.1MB 2730ms 0ms rustc 1.67.0
rust 3-i.rs 1492ms 23ms 1.0MB 1473ms 0ms rustc 1.67.0
rust 2-i.rs 2205ms 4.9ms 1.0MB 2193ms 0ms rustc 1.67.0
rust 1-m.rs 2866ms 4.7ms 1.0MB 5527ms 0ms rustc 1.67.0
swift 1.swift 3536ms 37ms 2.4MB 3527ms 0ms swift 5.7.3
rust 1.rs 4707ms 34ms 1.0MB 4693ms 0ms rustc 1.67.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 3-im.rs 70ms 0.7ms 1.0MB 117ms 0ms rustc 1.67.0
rust 2-im.rs 100ms 3.0ms 1.1MB 170ms 0ms rustc 1.67.0
rust 5-m.rs 125ms 1.7ms 1.0MB 220ms 0ms rustc 1.67.0
rust 3-i.rs 126ms 0.8ms 1.1MB 117ms 0ms rustc 1.67.0
rust 2-i.rs 191ms 8.6ms 1.1MB 183ms 0ms rustc 1.67.0
rust 1-m.rs 258ms 4.6ms 1.1MB 453ms 3ms rustc 1.67.0
swift 1.swift 293ms 2.8ms 5.2MB 283ms 0ms swift 5.7.3
rust 1.rs 394ms 1.2ms 1.1MB 383ms 0ms rustc 1.67.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 5c-m.rs 212ms 1.9ms 1.7MB 370ms 7ms rustc 1.69.0-nightly
rust 5-m.rs 224ms 5.8ms 1.7MB 400ms 0ms rustc 1.67.0
rust 1c.rs 257ms 0.4ms 1.0MB 247ms 0ms rustc 1.69.0-nightly
rust 1.rs 314ms 1.1ms 1.0MB 307ms 0ms rustc 1.67.0
swift 3.swift 474ms 12ms 21.1MB 630ms 10ms swift 5.7.3

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1c.rs 29ms 0.8ms 1.0MB 20ms 0ms rustc 1.69.0-nightly
rust 5-m.rs 32ms 0.5ms 1.7MB 40ms 0ms rustc 1.67.0
rust 5c-m.rs 33ms 3.0ms 1.7MB 37ms 3ms rustc 1.69.0-nightly
rust 1.rs 35ms 2.0ms 1.0MB 23ms 0ms rustc 1.67.0
swift 3.swift 74ms 2.7ms 14.7MB 60ms 0ms swift 5.7.3

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 2.5ms 0.6ms 1.9MB 0ms 0ms rustc 1.67.0
rust 1.rs 2.6ms 0.8ms 1.0MB 0ms 0ms rustc 1.69.0-nightly
swift 1.swift 4.4ms 0.2ms 0.0MB 0ms 0ms swift 5.7.3

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 422ms 12ms 28.2MB 733ms 17ms rustc 1.67.0
rust 8.rs 743ms 40ms 23.3MB 710ms 13ms rustc 1.67.0
swift 2-m.swift 2402ms 35ms 44.4MB 4443ms 47ms swift 5.7.3

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 8-m.rs 57ms 1.0ms 15.7MB 77ms 3ms rustc 1.67.0
rust 8.rs 88ms 3.3ms 11.6MB 70ms 7ms rustc 1.67.0
swift 2-m.swift 496ms 97ms 41.4MB 723ms 27ms swift 5.7.3

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 255ms 0.3ms 1.0MB 237ms 0ms rustc 1.67.0
rust 7-i.rs 376ms 6.0ms 1.0MB 363ms 0ms rustc 1.67.0
rust 3.rs 404ms 0.9ms 1.1MB 390ms 0ms rustc 1.69.0-nightly
rust 2.rs 446ms 30ms 1.1MB 433ms 0ms rustc 1.67.0
rust 1.rs 503ms 8.7ms 1.1MB 490ms 0ms rustc 1.67.0
swift 7.swift 565ms 41ms 5.1MB 553ms 0ms swift 5.7.3

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4-i.rs 29ms 0.5ms 1.0MB 20ms 0ms rustc 1.67.0
rust 7-i.rs 41ms 0.3ms 1.0MB 30ms 0ms rustc 1.67.0
rust 3.rs 43ms 0.1ms 1.0MB 30ms 0ms rustc 1.69.0-nightly
rust 2.rs 45ms 0.5ms 1.0MB 37ms 0ms rustc 1.67.0
rust 1.rs 55ms 4.2ms 1.0MB 43ms 0ms rustc 1.67.0
swift 7.swift 58ms 2.1ms 5.1MB 47ms 0ms swift 5.7.3

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 2.rs 1979ms 8.1ms 2.7MB 1890ms 73ms rustc 1.67.0
rust 1.rs 2064ms 22ms 2.8MB 1870ms 173ms rustc 1.67.0
swift 1.swift timeout 0.0ms 6.3MB 4967ms 10ms swift 5.7.3

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 441ms 3.4ms 2.4MB 423ms 0ms rustc 1.67.0
rust 2.rs 459ms 11ms 2.5MB 447ms 0ms rustc 1.67.0
swift 1.swift 3180ms 62ms 6.2MB 3163ms 0ms swift 5.7.3