Ruby VS Acton benchmarks

Current benchmark data was generated on Tue Apr 01 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
ruby 1-m.rb 4767ms 126ms 811.9MB 6707ms 477ms truffleruby 24.2.0
ruby 1.rb 4863ms 1.8ms 109.4MB 4763ms 83ms ruby/yjit 3.4.2
acton 1.act timeout 0.0ms 67.1MB 5980ms 87ms actonc 0.24.1
ruby 1.rb timeout 0.0ms 70.1MB 4940ms 43ms ruby 3.4.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 508ms 33ms 20.3MB 483ms 10ms ruby/yjit 3.4.2
ruby 1-m.rb 555ms 69ms 418.8MB 1097ms 167ms truffleruby 24.2.0
acton 1.act 838ms 21ms 12.0MB 960ms 83ms actonc 0.24.1
ruby 1.rb 928ms 2.7ms 19.6MB 903ms 10ms ruby 3.4.2

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 1459ms 16ms 63.8MB 1383ms 60ms ruby/yjit 3.4.2
ruby 1.rb 1869ms 36ms 63.1MB 1790ms 63ms ruby 3.4.2
ruby 1.rb timeout 0.0ms 344.5MB 4627ms 1523ms truffleruby 24.2.0

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 158ms 1.9ms 25.6MB 127ms 20ms ruby/yjit 3.4.2
ruby 1.rb 188ms 3.4ms 25.1MB 157ms 20ms ruby 3.4.2
ruby 1.rb timeout 0.0ms 346.9MB 4623ms 1517ms truffleruby 24.2.0

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 6.rb 2077ms 33ms 23.0MB 2053ms 10ms ruby/yjit 3.4.2
ruby 6-m.rb 2154ms 27ms 419.9MB 5600ms 347ms truffleruby 24.2.0
ruby 6.rb 3878ms 66ms 22.5MB 3853ms 13ms ruby 3.4.2

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 6.rb 265ms 3.1ms 15.0MB 247ms 7ms ruby/yjit 3.4.2
ruby 6.rb 439ms 2.9ms 14.5MB 420ms 3ms ruby 3.4.2
ruby 6-m.rb 812ms 40ms 382.1MB 2017ms 183ms truffleruby 24.2.0

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 3.7ms 0.2ms 3.9MB 0ms 0ms actonc 0.24.1
ruby 1.rb 35ms 0.3ms 139.0MB 12ms 24ms truffleruby 24.2.0
ruby 1.rb 53ms 1.0ms 13.1MB 40ms 2ms ruby/yjit 3.4.2
ruby 1.rb 54ms 1.4ms 12.9MB 40ms 2ms ruby 3.4.2

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 258ms 2.9ms 28.1MB 233ms 10ms ruby/yjit 3.4.2
ruby 1.rb 259ms 4.0ms 26.6MB 230ms 13ms ruby 3.4.2
ruby 1-m.rb 4362ms 155ms 576.2MB 11467ms 350ms truffleruby 24.2.0

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 2091ms 12ms 134.7MB 1990ms 87ms ruby 3.4.2
ruby 1.rb 2092ms 9.2ms 132.2MB 2000ms 80ms ruby/yjit 3.4.2
ruby 1.rb timeout 0.0ms 485.6MB 13250ms 367ms truffleruby 24.2.0

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 331ms 1.9ms 13.5MB 313ms 3ms ruby/yjit 3.4.2
ruby 1.rb 541ms 20ms 13.0MB 527ms 3ms ruby 3.4.2
ruby 1-m.rb 654ms 36ms 370.3MB 1150ms 157ms truffleruby 24.2.0

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 876ms 8.2ms 13.5MB 857ms 7ms ruby/yjit 3.4.2
ruby 1-m.rb 1234ms 21ms 404.6MB 1727ms 163ms truffleruby 24.2.0
ruby 1.rb 1479ms 10ms 13.0MB 1457ms 10ms ruby 3.4.2

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 192ms 1.5ms 13.5MB 170ms 7ms ruby/yjit 3.4.2
ruby 1.rb 292ms 3.4ms 12.9MB 277ms 0ms ruby 3.4.2
ruby 1-m.rb 512ms 30ms 361.1MB 973ms 137ms truffleruby 24.2.0

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 3317ms 14ms 101.9MB 3623ms 50ms actonc 0.24.1
ruby 1-m.rb 4430ms 469ms 527.4MB 11217ms 380ms truffleruby 24.2.0
ruby 1.rb timeout 0.0ms 93.6MB 4933ms 50ms ruby 3.4.2
ruby 1.rb timeout 0.0ms 94.8MB 4940ms 50ms ruby/yjit 3.4.2

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 708ms 5.3ms 30.5MB 750ms 30ms actonc 0.24.1
ruby 1-m.rb 1938ms 44ms 591.3MB 5030ms 250ms truffleruby 24.2.0
ruby 1.rb 3421ms 15ms 38.3MB 3377ms 30ms ruby/yjit 3.4.2
ruby 1.rb 4437ms 12ms 37.8MB 4397ms 27ms ruby 3.4.2

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 2.rb 827ms 10ms 306.8MB 1060ms 120ms truffleruby 24.2.0
ruby 2.rb timeout 0.0ms 12.9MB 4980ms 7ms ruby 3.4.2
ruby 2.rb timeout 0.0ms 13.5MB 4980ms 7ms ruby/yjit 3.4.2

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 2-m.rb 312ms 17ms 309.9MB 547ms 110ms truffleruby 24.2.0
ruby 2.rb 1069ms 6.2ms 13.5MB 1050ms 7ms ruby/yjit 3.4.2
ruby 2.rb 2781ms 57ms 12.9MB 2763ms 7ms ruby 3.4.2

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act timeout 0.0ms 561.0MB 6787ms 93ms actonc 0.24.1
ruby 1.rb timeout 0.0ms 325.4MB 4843ms 140ms ruby 3.4.2
ruby 1.rb timeout 0.0ms 327.0MB 4850ms 137ms ruby/yjit 3.4.2
ruby 1.rb timeout 0.0ms 695.1MB 5063ms 153ms truffleruby 24.2.0

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1-m.rb 1704ms 22ms 482.3MB 2477ms 170ms truffleruby 24.2.0
acton 1.act 2360ms 5.2ms 192.3MB 2893ms 43ms actonc 0.24.1
ruby 1.rb 3396ms 18ms 131.8MB 3303ms 80ms ruby/yjit 3.4.2
ruby 1.rb 4463ms 12ms 131.1MB 4370ms 77ms ruby 3.4.2

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1-m.act 2985ms 56ms 6.6MB 2847ms 2003ms actonc 0.24.1
ruby 1.rb timeout 0.0ms 46.5MB 4930ms 60ms ruby 3.4.2
ruby 1.rb timeout 0.0ms 47.1MB 4923ms 60ms ruby/yjit 3.4.2
ruby 1.rb timeout 0.0ms 443.3MB 13133ms 447ms truffleruby 24.2.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1-m.act 857ms 16ms 5.9MB 780ms 613ms actonc 0.24.1
ruby 1-m.rb 1605ms 209ms 383.3MB 4227ms 207ms truffleruby 24.2.0
ruby 1.rb 1696ms 3.3ms 46.1MB 1657ms 27ms ruby 3.4.2
ruby 1.rb 1784ms 9.6ms 127.6MB 1637ms 133ms ruby/yjit 3.4.2

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 4.rb timeout 0.0ms 12.9MB 4987ms 0ms ruby 3.4.2
ruby 4.rb timeout 0.0ms 13.5MB 4983ms 3ms ruby/yjit 3.4.2
ruby 4.rb timeout 0.0ms 425.1MB 5170ms 247ms truffleruby 24.2.0

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 4.rb 4858ms 56ms 417.3MB 5143ms 210ms truffleruby 24.2.0
ruby 4.rb timeout 0.0ms 12.9MB 4983ms 7ms ruby 3.4.2
ruby 4.rb timeout 0.0ms 13.5MB 4980ms 7ms ruby/yjit 3.4.2

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 4.rb 1459ms 49ms 378.8MB 1800ms 147ms truffleruby 24.2.0
ruby 4.rb timeout 0.0ms 13.0MB 4983ms 0ms ruby 3.4.2
ruby 4.rb timeout 0.0ms 13.8MB 4980ms 3ms ruby/yjit 3.4.2