Swift VS Wasm benchmarks

Current benchmark data was generated on Sun Jul 13 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
wasm 5.rs 1739ms 5.1ms 34.0MB 1720ms 7ms wasmtime 34.0.1
wasm 4.rs 1815ms 23ms 34.1MB 1793ms 10ms wasmtime 34.0.1
wasm 3.rs 1852ms 9.2ms 50.0MB 1823ms 17ms wasmtime 34.0.1
swift 1.swift 2692ms 22ms 53.8MB 2657ms 20ms swift 6.1.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 5.rs 171ms 1.3ms 20.0MB 157ms 0ms wasmtime 34.0.1
wasm 4.rs 174ms 3.1ms 20.0MB 163ms 0ms wasmtime 34.0.1
wasm 3.rs 180ms 3.2ms 22.0MB 163ms 0ms wasmtime 34.0.1
swift 1.swift 240ms 0.7ms 11.9MB 230ms 0ms swift 6.1.2

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 1.swift 2463ms 7.5ms 5.5MB 2453ms 0ms swift 6.1.2
wasm 1.rs 4157ms 18ms 17.8MB 4143ms 0ms wasmtime 34.0.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 1.swift 213ms 2.3ms 5.5MB 200ms 0ms swift 6.1.2
wasm 1.rs 349ms 4.0ms 17.7MB 337ms 0ms wasmtime 34.0.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 3-m.swift 139ms 1.6ms 20.7MB 400ms 3ms swift 6.1.2
wasm 1.rs 234ms 2.4ms 18.2MB 220ms 0ms wasmtime 34.0.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 31ms 0.4ms 18.3MB 20ms 0ms wasmtime 34.0.1
swift 3.swift 37ms 0.3ms 14.2MB 30ms 0ms swift 6.1.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 1.swift 2.4ms 0.1ms 5.6MB 0ms 0ms swift 6.1.2
wasm 1.rs 6.7ms 0.5ms 18.2MB 0ms 0ms wasmtime 34.0.1

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 2-m.swift 1361ms 16ms 74.3MB 4960ms 37ms swift 6.1.2

Input: 250000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 2-m.swift 251ms 2.0ms 60.0MB 663ms 30ms swift 6.1.2

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 7.swift 346ms 2.1ms 9.9MB 337ms 0ms swift 6.1.2
wasm 1.rs 405ms 1.9ms 18.0MB 390ms 0ms wasmtime 34.0.1
wasm 2.rs 564ms 4.6ms 18.1MB 553ms 0ms wasmtime 34.0.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 7.swift 39ms 0.9ms 9.9MB 30ms 0ms swift 6.1.2
wasm 1.rs 47ms 0.1ms 18.1MB 37ms 0ms wasmtime 34.0.1
wasm 2.rs 65ms 1.7ms 18.1MB 50ms 0ms wasmtime 34.0.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 2143ms 4.7ms 19.0MB 2127ms 0ms wasmtime 34.0.1
swift 1.swift timeout 0.0ms 7.3MB 4927ms 60ms swift 6.1.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 506ms 0.5ms 18.3MB 490ms 0ms wasmtime 34.0.1
swift 1.swift 1865ms 11ms 7.0MB 1853ms 0ms swift 6.1.2