Acton VS Ruby benchmarks

Current benchmark data was generated on Thu Feb 01 2024, 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.)

edigits

Input: 250001

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 518ms 8.0ms 12.4MB 543ms 47ms actonc 0.19.2

Input: 100000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 167ms 8.8ms 10.8MB 153ms 30ms actonc 0.19.2

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 4.2ms 0.4ms 6.4MB 0ms 0ms actonc 0.19.2
ruby 1.rb 41ms 0.2ms 161.9MB 8ms 32ms truffleruby 23.1.2
ruby 1.rb 70ms 2.0ms 28.3MB 46ms 12ms ruby 3.3.0
ruby 1.rb 72ms 1.8ms 28.4MB 46ms 16ms ruby/yjit 3.3.0

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act timeout 0.0ms 10.8MB 7663ms 1610ms actonc 0.19.2
ruby 1.rb timeout 0.0ms 108.6MB 4923ms 63ms ruby 3.3.0
ruby 1.rb timeout 0.0ms 108.8MB 4913ms 70ms ruby/yjit 3.3.0
ruby 1.rb timeout 0.0ms 456.4MB 13293ms 427ms truffleruby 23.1.2

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 1680ms 2.7ms 109.0MB 1597ms 67ms ruby/yjit 3.3.0
acton 1-m.act 1681ms 170ms 10.7MB 2257ms 673ms actonc 0.19.2
ruby 1.rb 1696ms 16ms 108.5MB 1610ms 70ms ruby 3.3.0
ruby 1-m.rb 1925ms 70ms 409.5MB 5020ms 253ms truffleruby 23.1.2