Acton VS Wasm benchmarks

Current benchmark data was generated on Mon May 19 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 4.rs 1799ms 13ms 33.8MB 1780ms 10ms wasmtime 32.0.0
wasm 5.rs 1807ms 26ms 33.8MB 1787ms 3ms wasmtime 32.0.0
wasm 3.rs 1837ms 50ms 49.8MB 1807ms 17ms wasmtime 32.0.0
acton 1.act timeout 0.0ms 67.0MB 5913ms 87ms actonc 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 5.rs 170ms 0.4ms 19.8MB 157ms 0ms wasmtime 32.0.0
wasm 3.rs 172ms 3.8ms 21.7MB 160ms 0ms wasmtime 32.0.0
wasm 4.rs 172ms 1.7ms 19.7MB 160ms 0ms wasmtime 32.0.0
acton 1.act 866ms 49ms 12.1MB 997ms 63ms actonc 0.25.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 226ms 10.0ms 8.0MB 207ms 30ms actonc 0.25.0
wasm 1.rs 420ms 2.0ms 19.4MB 407ms 0ms wasmtime 32.0.0

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 82ms 15ms 5.8MB 63ms 13ms actonc 0.25.0
wasm 1.rs 114ms 1.7ms 19.0MB 100ms 0ms wasmtime 32.0.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 3.8ms 0.2ms 3.9MB 0ms 0ms actonc 0.25.0
wasm 1.rs 6.8ms 0.2ms 18.0MB 0ms 0ms wasmtime 32.0.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 901ms 10ms 43.7MB 873ms 10ms wasmtime 32.0.0
acton 1.act 3359ms 11ms 84.5MB 3770ms 57ms actonc 0.25.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 197ms 2.6ms 23.7MB 180ms 0ms wasmtime 32.0.0
acton 1.act 759ms 44ms 23.8MB 833ms 33ms actonc 0.25.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 368ms 9.3ms 22.8MB 357ms 0ms wasmtime 32.0.0
wasm 1.rs 476ms 1.3ms 56.7MB 460ms 0ms wasmtime 32.0.0
acton 1.act timeout 0.0ms 560.9MB 6627ms 93ms actonc 0.25.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 96ms 3.0ms 27.5MB 83ms 0ms wasmtime 32.0.0
wasm 2.rs 97ms 2.1ms 18.9MB 83ms 0ms wasmtime 32.0.0
acton 1.act 2461ms 15ms 192.4MB 2957ms 57ms actonc 0.25.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 2153ms 20ms 19.1MB 2140ms 0ms wasmtime 32.0.0
acton 1-m.act 3454ms 71ms 7.0MB 3500ms 2400ms actonc 0.25.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 504ms 1.2ms 18.1MB 490ms 0ms wasmtime 32.0.0
acton 1-m.act 970ms 26ms 6.0MB 937ms 717ms actonc 0.25.0