Ruby VS Acton benchmarks

Current benchmark data was generated on Wed Mar 22 2023, full log can be found HERE

CONTRIBUTIONS are WELCOME!

[x86_64][2 cores] Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (Model 106)

* -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.rb timeout 0.0ms 72.7MB 4940ms 43ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 115.6MB 4920ms 60ms ruby/yjit 3.2.1
ruby 1.rb timeout 0.0ms 714.3MB 7813ms 353ms truffleruby 22.3.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 551ms 1.5ms 40.6MB 523ms 10ms ruby/yjit 3.2.1
ruby 1.rb 991ms 4.0ms 40.2MB 963ms 10ms ruby 3.2.1
ruby 1-m.rb 1011ms 11ms 430.3MB 1650ms 120ms truffleruby 22.3.1

coro-prime-sieve

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 3273ms 12ms 82.7MB 3213ms 40ms ruby/yjit 3.2.1
ruby 1.rb 3704ms 36ms 82.1MB 3630ms 53ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 1118.6MB 4167ms 1353ms truffleruby 22.3.1

Input: 1000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 228ms 3.7ms 45.0MB 193ms 17ms ruby/yjit 3.2.1
ruby 1.rb 241ms 1.1ms 44.5MB 200ms 27ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 1115.6MB 4157ms 1287ms truffleruby 22.3.1

fasta

Input: 2500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 6.rb 2407ms 2.4ms 43.5MB 2377ms 13ms ruby/yjit 3.2.1
ruby 6-m.rb 2592ms 11ms 372.7MB 4680ms 257ms truffleruby 22.3.1
ruby 6.rb 4226ms 15ms 43.1MB 4197ms 13ms ruby 3.2.1

Input: 250000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 6.rb 316ms 0.2ms 35.0MB 283ms 17ms ruby/yjit 3.2.1
ruby 6.rb 497ms 11ms 34.4MB 470ms 10ms ruby 3.2.1
ruby 6-m.rb 833ms 25ms 321.3MB 1410ms 120ms truffleruby 22.3.1

helloworld

Input: QwQ

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 8.0ms 3.1ms 3.4MB 0ms 0ms actonc 0.14.2
ruby 1.rb 44ms 1.8ms 156.9MB 16ms 30ms truffleruby 22.3.1
ruby 1.rb 74ms 1.5ms 32.0MB 52ms 10ms ruby 3.2.1
ruby 1.rb 75ms 0.7ms 32.1MB 50ms 10ms ruby/yjit 3.2.1

json-serde

Input: sample 5000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 443ms 1.9ms 50.1MB 413ms 17ms ruby 3.2.1
ruby 1.rb 446ms 2.3ms 51.3MB 420ms 10ms ruby/yjit 3.2.1
ruby 1.rb timeout 0.0ms 454.7MB 9170ms 213ms truffleruby 22.3.1

Input: canada 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 3997ms 1.7ms 174.9MB 3910ms 70ms ruby/yjit 3.2.1
ruby 1.rb 4004ms 15ms 173.9MB 3903ms 83ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 414.8MB 9253ms 187ms truffleruby 22.3.1

lru

Input: 1000 1000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 440ms 1.3ms 32.9MB 417ms 7ms ruby/yjit 3.2.1
ruby 1.rb 600ms 6.0ms 32.4MB 573ms 10ms ruby 3.2.1
ruby 1-m.rb 787ms 25ms 323.1MB 1143ms 103ms truffleruby 22.3.1

Input: 1000 3000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 1169ms 4.7ms 33.0MB 1143ms 7ms ruby/yjit 3.2.1
ruby 1.rb 1441ms 41ms 371.3MB 1893ms 140ms truffleruby 22.3.1
ruby 1.rb 1641ms 7.3ms 32.4MB 1613ms 17ms ruby 3.2.1

Input: 100 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 256ms 0.7ms 32.8MB 237ms 3ms ruby/yjit 3.2.1
ruby 1.rb 333ms 3.6ms 32.3MB 313ms 7ms ruby 3.2.1
ruby 1-m.rb 569ms 14ms 309.1MB 853ms 77ms truffleruby 22.3.1

merkletrees

Input: 17

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb timeout 0.0ms 96.5MB 4927ms 53ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 97.0MB 4940ms 40ms ruby/yjit 3.2.1
ruby 1.rb timeout 0.0ms 567.8MB 9107ms 270ms truffleruby 22.3.1

Input: 15

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1-m.rb 3328ms 33ms 590.4MB 6060ms 243ms truffleruby 22.3.1
ruby 1.rb 4322ms 23ms 53.7MB 4287ms 20ms ruby/yjit 3.2.1
ruby 1.rb timeout 0.0ms 52.7MB 4960ms 20ms ruby 3.2.1

nbody

Input: 5000000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 2.rb 1041ms 6.3ms 305.3MB 1223ms 103ms truffleruby 22.3.1
ruby 2.rb timeout 0.0ms 32.2MB 4970ms 13ms ruby 3.2.1
ruby 2.rb timeout 0.0ms 33.0MB 4977ms 3ms ruby/yjit 3.2.1

Input: 500000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 2-m.rb 403ms 15ms 307.3MB 623ms 83ms truffleruby 22.3.1
ruby 2.rb 2132ms 5.5ms 32.9MB 2103ms 13ms ruby/yjit 3.2.1
ruby 2.rb 3199ms 11ms 32.2MB 3180ms 3ms ruby 3.2.1

nsieve

Input: 12

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb timeout 0.0ms 344.5MB 4847ms 133ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 345.2MB 4830ms 150ms ruby/yjit 3.2.1
ruby 1.rb timeout 0.0ms 682.5MB 5027ms 163ms truffleruby 22.3.1

Input: 10

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 1.rb 3067ms 47ms 426.8MB 3563ms 113ms truffleruby 22.3.1
ruby 1.rb timeout 0.0ms 151.0MB 4910ms 70ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 151.5MB 4910ms 67ms ruby/yjit 3.2.1

pidigits

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 4313ms 37ms 7.9MB 3970ms 700ms actonc 0.14.2
ruby 1.rb timeout 0.0ms 159.2MB 4923ms 60ms ruby 3.2.1
ruby 1.rb timeout 0.0ms 159.2MB 4933ms 47ms ruby/yjit 3.2.1
ruby 1.rb timeout 0.0ms 430.7MB 9390ms 237ms truffleruby 22.3.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
acton 1.act 1394ms 250ms 6.8MB 1220ms 253ms actonc 0.14.2
ruby 1-m.rb 2017ms 42ms 427.3MB 3650ms 183ms truffleruby 22.3.1
ruby 1.rb 2432ms 3.0ms 161.2MB 2357ms 60ms ruby/yjit 3.2.1
ruby 1.rb 2447ms 4.7ms 159.1MB 2357ms 67ms ruby 3.2.1

spectral-norm

Input: 8000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 4.rb timeout 0.0ms 32.3MB 4970ms 10ms ruby 3.2.1
ruby 4.rb timeout 0.0ms 32.6MB 4970ms 13ms ruby/yjit 3.2.1
ruby 4.rb timeout 0.0ms 551.6MB 5220ms 233ms truffleruby 22.3.1

Input: 4000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 4.rb timeout 0.0ms 32.3MB 4973ms 7ms ruby 3.2.1
ruby 4.rb timeout 0.0ms 32.7MB 4970ms 7ms ruby/yjit 3.2.1
ruby 4.rb timeout 0.0ms 589.4MB 5457ms 193ms truffleruby 22.3.1

Input: 2000

lang code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
ruby 4.rb 2499ms 6.6ms 470.4MB 2993ms 157ms truffleruby 22.3.1
ruby 4.rb timeout 0.0ms 32.3MB 4967ms 10ms ruby 3.2.1
ruby 4.rb timeout 0.0ms 33.0MB 4963ms 17ms ruby/yjit 3.2.1