Acton 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
acton 1.act timeout 0.0ms 67.0MB 5860ms 97ms actonc 0.26.0

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
acton 1.act 825ms 34ms 12.1MB 950ms 67ms actonc 0.26.0

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 224ms 8.4ms 8.1MB 207ms 27ms actonc 0.26.0
wasm 1.rs 420ms 3.1ms 19.6MB 407ms 0ms wasmtime 34.0.1

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 76ms 3.4ms 6.0MB 60ms 17ms actonc 0.26.0
wasm 1.rs 114ms 1.7ms 19.0MB 100ms 0ms wasmtime 34.0.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 3.5ms 0.2ms 4.3MB 0ms 0ms actonc 0.26.0
wasm 1.rs 6.7ms 0.5ms 18.2MB 0ms 0ms wasmtime 34.0.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 870ms 7.8ms 42.1MB 847ms 10ms wasmtime 34.0.1
acton 1.act 3273ms 16ms 84.5MB 3657ms 63ms actonc 0.26.0

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 192ms 2.6ms 24.1MB 177ms 0ms wasmtime 34.0.1
acton 1.act 700ms 14ms 23.8MB 760ms 37ms actonc 0.26.0

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 2.rs 387ms 3.2ms 22.9MB 373ms 0ms wasmtime 34.0.1
wasm 1.rs 463ms 2.4ms 57.0MB 447ms 3ms wasmtime 34.0.1
acton 1.act timeout 0.0ms 561.1MB 6640ms 77ms actonc 0.26.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
wasm 1.rs 92ms 3.2ms 27.9MB 80ms 0ms wasmtime 34.0.1
wasm 2.rs 100ms 2.0ms 19.3MB 90ms 0ms wasmtime 34.0.1
acton 1.act 2437ms 22ms 192.3MB 2917ms 53ms actonc 0.26.0

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
acton 1-m.act 3537ms 106ms 6.7MB 3547ms 2483ms actonc 0.26.0

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
acton 1-m.act 963ms 41ms 6.0MB 937ms 683ms actonc 0.26.0