Swift VS Wasm benchmarks

Current benchmark data was generated on Fri May 20 2022, 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.)

fannkuch-redux

Input: 11

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 1.swift 3451ms 12ms 5.4MB 3427ms 3ms swift 5.6.1
wasm 1.rs 4702ms 36ms 43.5MB 4700ms 7ms node 16.15.0
wasm 1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmedgec 0.9.1
wasm 1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmer/llvm 2.2.1
wasm 1.rs timeout 0.0ms 0.0MB 0ms 0ms wasmtime 0.36.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 1.swift 302ms 17ms 5.2MB 280ms 0ms swift 5.6.1
wasm 1.rs 420ms 12ms 5.9MB 400ms 0ms wasmer/llvm 2.2.1
wasm 1.rs 464ms 2.1ms 9.0MB 450ms 0ms wasmtime 0.36.0
wasm 1.rs 466ms 3.6ms 43.5MB 473ms 7ms node 16.15.0
wasm 1.rs 467ms 0.5ms 8.8MB 457ms 0ms wasmedgec 0.9.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 348ms 0.4ms 6.4MB 333ms 0ms wasmer/llvm 2.2.1
wasm 1.rs 357ms 1.4ms 10.9MB 347ms 0ms wasmtime 0.36.0
wasm 1.rs 366ms 0.6ms 8.8MB 353ms 0ms wasmedgec 0.9.1
swift 3-m.swift 369ms 4.6ms 21.0MB 663ms 7ms swift 5.6.1
wasm 1.rs 462ms 4.7ms 43.1MB 480ms 3ms node 16.15.0

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 43ms 0.7ms 11.0MB 30ms 0ms wasmtime 0.36.0
wasm 1.rs 46ms 15ms 6.4MB 27ms 0ms wasmer/llvm 2.2.1
wasm 1.rs 49ms 3.4ms 9.1MB 33ms 0ms wasmedgec 0.9.1
swift 3.swift 64ms 15ms 14.6MB 60ms 0ms swift 5.6.1
wasm 1.rs 125ms 3.2ms 43.3MB 143ms 3ms node 16.15.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 6.3ms 0.6ms 10.2MB 0ms 0ms wasmtime 0.36.0
wasm 1.rs 6.3ms 6.5ms 5.7MB 0ms 0ms wasmer/llvm 2.2.1
swift 1.swift 7.3ms 9.6ms 4.8MB 0ms 0ms swift 5.6.1
wasm 1.rs 9.0ms 0.7ms 8.6MB 0ms 0ms wasmedgec 0.9.1
wasm 1.rs 75ms 1.7ms 42.1MB 90ms 2ms node 16.15.0

knucleotide

Input: 2500000_in

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 2-m.swift 2306ms 390ms 54.4MB 3920ms 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 385ms 25ms 33.7MB 637ms 10ms swift 5.6.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 7.swift 426ms 0.4ms 5.4MB 417ms 0ms swift 5.6.1
wasm 1.rs 470ms 1.7ms 4.9MB 457ms 0ms wasmer/llvm 2.2.1
wasm 1.rs 503ms 0.2ms 9.3MB 490ms 0ms wasmedgec 0.9.1
wasm 1.rs 519ms 0.1ms 9.0MB 503ms 0ms wasmtime 0.36.0
wasm 1.rs 566ms 1.9ms 47.5MB 590ms 0ms node 16.15.0
wasm 2.rs 664ms 3.3ms 5.1MB 653ms 0ms wasmer/llvm 2.2.1
wasm 2.rs 685ms 0.8ms 9.2MB 673ms 0ms wasmedgec 0.9.1
wasm 2.rs 721ms 0.3ms 9.0MB 710ms 0ms wasmtime 0.36.0
wasm 2.rs 753ms 1.5ms 47.4MB 773ms 10ms node 16.15.0

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
swift 7.swift 55ms 14ms 5.4MB 40ms 0ms swift 5.6.1
wasm 1.rs 56ms 11ms 6.0MB 40ms 0ms wasmer/llvm 2.2.1
wasm 1.rs 59ms 0.7ms 11.2MB 43ms 0ms wasmtime 0.36.0
wasm 1.rs 61ms 0.8ms 9.3MB 50ms 0ms wasmedgec 0.9.1
wasm 2.rs 75ms 8.8ms 5.8MB 57ms 0ms wasmer/llvm 2.2.1
wasm 2.rs 80ms 1.2ms 9.7MB 70ms 0ms wasmedgec 0.9.1
wasm 2.rs 81ms 4.3ms 9.4MB 67ms 0ms wasmtime 0.36.0
wasm 1.rs 143ms 2.4ms 47.4MB 167ms 10ms node 16.15.0
wasm 2.rs 166ms 3.4ms 47.5MB 180ms 10ms node 16.15.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 3578ms 0.2ms 6.9MB 3567ms 0ms wasmer/llvm 2.2.1
wasm 2.rs 3678ms 24ms 10.9MB 3667ms 0ms wasmedgec 0.9.1
wasm 2.rs 4112ms 42ms 47.5MB 4150ms 17ms node 16.15.0
wasm 2.rs 4174ms 1.4ms 10.9MB 4160ms 0ms wasmtime 0.36.0
swift 1.swift timeout 0.0ms 0.0MB 0ms 0ms swift 5.6.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 848ms 13ms 6.6MB 830ms 0ms wasmer/llvm 2.2.1
wasm 2.rs 878ms 4.6ms 10.6MB 863ms 0ms wasmedgec 0.9.1
wasm 2.rs 988ms 1.7ms 10.6MB 977ms 0ms wasmtime 0.36.0
wasm 2.rs 1052ms 10ms 47.4MB 1097ms 10ms node 16.15.0
swift 1.swift 3474ms 78ms 6.4MB 3450ms 0ms swift 5.6.1