All Ruby 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

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 4770ms 133ms 110.1MB 4677ms 77ms ruby/yjit 3.4.4
1.rb timeout 0.0ms 70.5MB 4950ms 33ms ruby 3.4.4
1.rb timeout 0.0ms 796.7MB 6620ms 720ms truffleruby 24.2.1

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 498ms 0.9ms 20.3MB 473ms 10ms ruby/yjit 3.4.4
1-m.rb 503ms 8.2ms 407.1MB 980ms 150ms truffleruby 24.2.1
1.rb 947ms 3.2ms 19.5MB 923ms 13ms ruby 3.4.4

coro-prime-sieve

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 1449ms 20ms 63.8MB 1373ms 57ms ruby/yjit 3.4.4
1.rb 1913ms 42ms 63.0MB 1837ms 60ms ruby 3.4.4
1.rb timeout 0.0ms 364.7MB 4603ms 1530ms truffleruby 24.2.1

Input: 1000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 150ms 1.5ms 25.6MB 120ms 20ms ruby/yjit 3.4.4
1.rb 185ms 1.9ms 25.0MB 157ms 13ms ruby 3.4.4
1.rb timeout 0.0ms 346.5MB 4577ms 1460ms truffleruby 24.2.1

fasta

Input: 2500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
6.rb 2046ms 3.0ms 23.0MB 2023ms 10ms ruby/yjit 3.4.4
6-m.rb 2107ms 209ms 406.5MB 5403ms 323ms truffleruby 24.2.1
6.rb 3692ms 15ms 22.4MB 3673ms 10ms ruby 3.4.4

Input: 250000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
6.rb 259ms 4.3ms 15.2MB 237ms 10ms ruby/yjit 3.4.4
6.rb 415ms 1.8ms 14.4MB 397ms 3ms ruby 3.4.4
6-m.rb 843ms 29ms 380.9MB 2103ms 163ms truffleruby 24.2.1

helloworld

Input: QwQ

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 34ms 0.4ms 141.1MB 12ms 24ms truffleruby 24.2.1
1.rb 51ms 1.1ms 12.8MB 38ms 0ms ruby 3.4.4
1.rb 53ms 0.4ms 12.9MB 38ms 4ms ruby/yjit 3.4.4

json-serde

Input: sample 5000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 247ms 0.5ms 27.1MB 210ms 20ms ruby 3.4.4
1.rb 250ms 4.8ms 30.1MB 220ms 17ms ruby/yjit 3.4.4
1-m.rb 4251ms 31ms 506.4MB 11203ms 337ms truffleruby 24.2.1

Input: canada 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 2101ms 28ms 135.5MB 2013ms 73ms ruby/yjit 3.4.4
1.rb 2146ms 112ms 132.6MB 2067ms 67ms ruby 3.4.4
1.rb timeout 0.0ms 499.9MB 13243ms 367ms truffleruby 24.2.1

lru

Input: 1000 1000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 342ms 3.2ms 13.5MB 327ms 3ms ruby/yjit 3.4.4
1.rb 529ms 4.4ms 12.9MB 510ms 0ms ruby 3.4.4
1-m.rb 686ms 7.4ms 371.8MB 1270ms 140ms truffleruby 24.2.1

Input: 1000 3000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 910ms 1.6ms 13.5MB 890ms 10ms ruby/yjit 3.4.4
1-m.rb 1261ms 52ms 406.7MB 1777ms 167ms truffleruby 24.2.1
1.rb 1485ms 8.7ms 12.9MB 1470ms 3ms ruby 3.4.4

Input: 100 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb 198ms 2.8ms 13.5MB 187ms 0ms ruby/yjit 3.4.4
1.rb 289ms 1.2ms 12.8MB 273ms 7ms ruby 3.4.4
1-m.rb 525ms 17ms 354.7MB 1033ms 137ms truffleruby 24.2.1

merkletrees

Input: 17

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.rb 3861ms 33ms 612.1MB 9853ms 350ms truffleruby 24.2.1
1.rb timeout 0.0ms 93.5MB 4947ms 40ms ruby 3.4.4
1.rb timeout 0.0ms 97.4MB 4940ms 50ms ruby/yjit 3.4.4

Input: 15

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.rb 2066ms 110ms 488.8MB 5300ms 230ms truffleruby 24.2.1
1.rb 3236ms 25ms 38.3MB 3197ms 23ms ruby/yjit 3.4.4
1.rb 4321ms 12ms 37.6MB 4287ms 23ms ruby 3.4.4

nbody

Input: 5000000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2.rb 836ms 14ms 325.0MB 1103ms 117ms truffleruby 24.2.1
2.rb timeout 0.0ms 12.8MB 4983ms 3ms ruby 3.4.4
2.rb timeout 0.0ms 13.5MB 4977ms 10ms ruby/yjit 3.4.4

Input: 500000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
2-m.rb 309ms 6.6ms 309.6MB 560ms 103ms truffleruby 24.2.1
2.rb 1028ms 6.1ms 13.5MB 1010ms 3ms ruby/yjit 3.4.4
2.rb 2980ms 14ms 12.8MB 2963ms 7ms ruby 3.4.4

nsieve

Input: 12

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb timeout 0.0ms 325.3MB 4850ms 133ms ruby 3.4.4
1.rb timeout 0.0ms 327.0MB 4847ms 140ms ruby/yjit 3.4.4
1.rb timeout 0.0ms 731.6MB 5070ms 153ms truffleruby 24.2.1

Input: 10

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.rb 1697ms 10ms 473.8MB 2493ms 170ms truffleruby 24.2.1
1.rb 3416ms 80ms 131.8MB 3323ms 83ms ruby/yjit 3.4.4
1.rb 4472ms 16ms 131.0MB 4383ms 73ms ruby 3.4.4

pidigits

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1.rb timeout 0.0ms 130.2MB 4863ms 123ms ruby 3.4.4
1.rb timeout 0.0ms 131.0MB 4833ms 150ms ruby/yjit 3.4.4
1.rb timeout 0.0ms 450.5MB 13320ms 430ms truffleruby 24.2.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
1-m.rb 1668ms 200ms 395.7MB 4403ms 210ms truffleruby 24.2.1
1.rb 1766ms 80ms 130.9MB 1657ms 93ms ruby/yjit 3.4.4
1.rb 1816ms 25ms 130.3MB 1690ms 113ms ruby 3.4.4

spectral-norm

Input: 8000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
4.rb timeout 0.0ms 12.9MB 4983ms 7ms ruby 3.4.4
4.rb timeout 0.0ms 13.5MB 4980ms 0ms ruby/yjit 3.4.4
4.rb timeout 0.0ms 436.6MB 5167ms 240ms truffleruby 24.2.1

Input: 4000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
4.rb 4848ms 12ms 433.6MB 5140ms 203ms truffleruby 24.2.1
4.rb timeout 0.0ms 12.8MB 4980ms 0ms ruby 3.4.4
4.rb timeout 0.0ms 13.5MB 4983ms 3ms ruby/yjit 3.4.4

Input: 2000

code time stddev peak-mem mem time(user) time(sys) compiler compiler/runtime
4.rb 1458ms 6.2ms 377.4MB 1793ms 157ms truffleruby 24.2.1
4.rb timeout 0.0ms 12.9MB 4980ms 3ms ruby 3.4.4
4.rb timeout 0.0ms 13.6MB 4980ms 3ms ruby/yjit 3.4.4