Acton VS Rust benchmarks

Current benchmark data was generated on Wed Jan 22 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
rust 4.rs 1246ms 3.8ms 33.8MB 1220ms 13ms rustc 1.84.0
rust 5.rs 1349ms 11ms 33.8MB 1327ms 7ms rustc 1.84.0
rust 3.rs 1475ms 58ms 49.8MB 1443ms 17ms rustc 1.84.0
acton 1.act timeout 0.0ms 69.0MB 5947ms 107ms actonc 0.24.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 4.rs 122ms 1.4ms 5.8MB 110ms 0ms rustc 1.84.0
rust 5.rs 124ms 0.7ms 5.8MB 110ms 0ms rustc 1.84.0
rust 3.rs 139ms 4.3ms 7.8MB 123ms 3ms rustc 1.84.0
acton 1.act 840ms 40ms 12.0MB 967ms 77ms actonc 0.24.1

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 118ms 0.7ms 3.6MB 110ms 0ms rustc 1.84.0
acton 1.act 269ms 4.3ms 8.1MB 247ms 63ms actonc 0.24.1
rust 2.rs 423ms 4.0ms 3.6MB 417ms 0ms rustc 1.84.0

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 33ms 1.4ms 2.9MB 23ms 0ms rustc 1.84.0
rust 2.rs 77ms 2.1ms 3.0MB 63ms 0ms rustc 1.84.0
acton 1.act 100ms 2.2ms 7.2MB 80ms 37ms actonc 0.24.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 1.2ms 0.0ms 1.9MB 0ms 0ms rustc 1.84.0
rust 1.rs 1.3ms 0.1ms 1.8MB 0ms 0ms rustc 1.86.0-nightly
acton 1.act 3.8ms 0.3ms 8.3MB 0ms 0ms actonc 0.24.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 694ms 5.4ms 33.8MB 673ms 7ms rustc 1.84.0
acton 1.act 3246ms 7.1ms 101.8MB 3543ms 43ms actonc 0.24.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 151ms 3.7ms 9.8MB 137ms 0ms rustc 1.84.0
acton 1.act 691ms 2.3ms 32.5MB 723ms 30ms actonc 0.24.1

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 313ms 4.9ms 40.9MB 293ms 7ms rustc 1.84.0
rust 2.rs 319ms 1.7ms 6.6MB 307ms 0ms rustc 1.84.0
acton 1.act timeout 0.0ms 561.0MB 6750ms 100ms actonc 0.24.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 59ms 1.3ms 11.6MB 50ms 0ms rustc 1.84.0
rust 2.rs 80ms 0.7ms 2.9MB 70ms 0ms rustc 1.84.0
acton 1.act 2338ms 14ms 192.4MB 2857ms 37ms actonc 0.24.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 1530ms 9.8ms 2.7MB 1270ms 237ms rustc 1.84.0
rust 2.rs 1713ms 10ms 2.8MB 1610ms 90ms rustc 1.84.0
acton 1-m.act 3163ms 97ms 6.7MB 2887ms 2157ms actonc 0.24.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
rust 1.rs 323ms 2.8ms 2.4MB 287ms 17ms rustc 1.84.0
rust 2.rs 380ms 2.1ms 2.5MB 370ms 0ms rustc 1.84.0
acton 1-m.act 868ms 4.4ms 7.5MB 770ms 610ms actonc 0.24.1