YJIT Benchmarks

Details for Benchmarks at 2024-10-27 03:46:03 GMT

YJIT metrics from the yjit-bench suite using Ruby 484ea00d2e.

Using the geomean of the headline benchmarks for x86 YJIT 3.4.0dev is
  • 89.7% faster than CRuby 3.4.0dev
  • 3.9% faster than YJIT 3.3.4
On railsbench it is
  • 99.6% faster than CRuby 3.4.0dev
  • 4.6% faster than YJIT 3.3.4
x86_64 runtime: 3 hours, 34 minutes
aarch64 runtime: 3 hours, 32 minutes

Performance on Headline Benchmarks

Select Platform
0.0 0.5 1.0 1.5 2.0 2.5 CRuby 3.3.4 CRuby 3.4.0dev YJIT 3.3.4 YJIT 3.4.0dev activerecord chunky-png erubi-rails hexapdf liquid-c liquid-compile liquid-render lobsters mail psych-load railsbench rubocop ruby-lsp sequel geomean* 0.96 2.32 2.35 0.99 1.81 1.94 1.00 2.28 2.35 1.01 1.84 1.95 1.00 1.53 1.57 0.98 1.44 1.53 0.96 2.64 2.72 0.98 1.66 1.67 0.96 1.56 1.47 0.97 1.42 1.66 1.00 1.91 2.00 1.00 1.95 2.06 1.01 1.80 1.95 1.00 1.54 1.50 0.99 1.80 1.88
Speed of each Ruby implementation relative to the baseline CRuby measurement. Higher is better.

Memory Usage on Headline Benchmarks

Select Platform
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 CRuby 3.3.4 CRuby 3.4.0dev YJIT 3.3.4 YJIT 3.4.0dev activerecord chunky-png erubi-rails hexapdf liquid-c liquid-compile liquid-render lobsters mail psych-load railsbench rubocop ruby-lsp sequel geomean* 0.87 1.14 1.02 1.11 0.89 1.10 1.00 1.07 1.08 0.90 1.89 1.74 0.80 1.15 0.91 0.79 1.10 0.94 0.77 1.14 0.95 0.95 1.17 1.16 0.93 1.11 1.03 0.76 1.06 0.85 0.92 1.14 1.09 0.90 1.36 1.31 0.89 1.15 1.00 0.84 1.12 0.94 0.88 1.16 1.06
Memory usage of each Ruby implementation relative to the baseline CRuby measurement. Lower is better.

Performance on Other Benchmarks

Select Platform
0.0 1.0 2.0 3.0 4.0 5.0 CRuby 3.3.4 CRuby 3.4.0dev YJIT 3.3.4 YJIT 3.4.0dev binarytrees blurhash erubi etanni fannkuchredux fluentd graphql graphql-native lee matmul nbody nqueens optcarrot protoboeuf protoboeuf-encode rack ruby-json rubykon sudoku tinygql geomean* 1.00 2.25 2.25 1.02 2.05 2.24 1.88 1.28 2.20 1.07 1.07 1.15 1.03 4.33 4.44 1.00 1.10 1.25 0.99 1.18 1.17 1.28 1.10 1.42 0.99 1.42 1.43 1.01 2.46 2.65 1.05 2.55 2.99 1.02 1.00 5.06 0.98 3.84 4.01 1.01 3.80 4.15 0.97 2.05 4.59 1.06 1.73 1.87 0.98 1.11 1.09 0.99 2.10 2.29 1.01 4.06 3.99 1.02 1.82 1.85 1.05 1.88 2.30
Speed of each Ruby implementation relative to the baseline CRuby measurement. Higher is better.

Memory Usage on Other Benchmarks

Select Platform
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 CRuby 3.3.4 CRuby 3.4.0dev YJIT 3.3.4 YJIT 3.4.0dev binarytrees blurhash erubi etanni fannkuchredux fluentd graphql graphql-native lee matmul nbody nqueens optcarrot protoboeuf protoboeuf-encode rack ruby-json rubykon sudoku tinygql geomean* 0.65 1.14 0.68 0.67 1.03 0.71 1.36 1.05 1.43 0.81 1.01 0.86 0.65 1.02 0.68 1.06 1.05 1.46 0.88 1.13 0.92 0.89 1.06 0.98 0.73 1.09 0.83 0.84 1.01 0.87 0.65 1.02 0.69 0.66 1.01 0.72 0.77 1.11 0.83 0.75 1.13 0.78 0.66 1.06 1.79 0.73 1.05 0.81 0.67 1.02 0.69 0.71 1.06 0.78 0.66 1.02 0.70 0.78 1.08 0.86 0.77 1.06 0.87
Memory usage of each Ruby implementation relative to the baseline CRuby measurement. Lower is better.

Performance on MicroBenchmarks

Select Platform
0.0 5.0 10.0 15.0 20.0 25.0 CRuby 3.3.4 CRuby 3.4.0dev YJIT 3.3.4 YJIT 3.4.0dev 30k_ifelse 30k_methods cfunc_itself fib getivar keyword_args object-new respond_to ruby-xor setivar setivar_object setivar_young str_concat throw geomean* 0.99 8.46 7.90 0.99 12.45 12.35 0.99 3.14 3.40 1.00 7.21 7.69 1.05 12.60 14.43 0.96 9.07 11.53 0.85 1.44 1.13 1.02 23.60 29.21 0.98 3.46 5.78 0.99 9.36 17.10 0.94 2.25 2.40 0.93 2.28 2.56 1.03 2.58 3.00 0.92 1.40 1.16 0.97 4.97 5.60
Speed of each Ruby implementation relative to the baseline CRuby measurement. Higher is better.

Memory Usage on MicroBenchmarks

Select Platform
0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 CRuby 3.3.4 CRuby 3.4.0dev YJIT 3.3.4 YJIT 3.4.0dev 30k_ifelse 30k_methods cfunc_itself fib getivar keyword_args object-new respond_to ruby-xor setivar setivar_object setivar_young str_concat throw geomean* 1.81 1.50 1.99 1.08 1.20 1.19 0.65 1.02 0.68 0.65 1.02 0.68 0.65 1.02 0.68 0.65 1.02 0.68 0.65 1.01 0.67 0.65 1.02 0.70 0.67 1.01 0.70 0.65 1.02 0.68 0.65 1.02 0.67 0.65 1.02 0.68 0.85 1.28 1.53 0.65 1.01 0.68 0.74 1.08 0.81
Memory usage of each Ruby implementation relative to the baseline CRuby measurement. Lower is better.

Want Raw Graphs and CSV?

Benchmarks Speed Details

Select Platform
bench CRuby 3.3.4 (ms) CRuby 3.3.4 RSD CRuby 3.4.0dev (ms) CRuby 3.4.0dev RSD YJIT 3.3.4 (ms) YJIT 3.3.4 RSD YJIT 3.4.0dev (ms) YJIT 3.4.0dev RSD CRuby 3.4.0dev spd CRuby 3.4.0dev spd RSD YJIT 3.3.4 spd YJIT 3.3.4 spd RSD YJIT 3.4.0dev spd YJIT 3.4.0dev spd RSD % in YJIT
activerecord 339.7 0.08% 352.1 0.06% 146.5 0.16% 144.6 0.06% 0.96x 0.10% 2.32x 0.18% 2.35x 0.10% 99.93%
chunky-png 837.1 0.12% 843.5 0.10% 463.1 0.10% 430.7 0.12% 0.99x 0.16% 1.81x 0.15% 1.94x 0.17% 100.00%
erubi-rails 1525.3 0.06% 1526.0 0.04% 668.4 0.09% 649.6 0.14% 1.00x 0.07% 2.28x 0.11% 2.35x 0.16% 99.53%
hexapdf 2774.7 0.75% 2757.6 0.41% 1509.4 2.65% 1422.1 2.73% 1.01x 0.86% 1.84x 2.76% 1.95x 2.83% 96.84%
liquid-c 71.4 0.24% 71.1 0.51% 46.6 0.57% 45.6 0.82% 1.00x 0.56% 1.53x 0.62% 1.57x 0.85% 99.76%
liquid-compile 71.9 0.34% 73.2 0.37% 50.0 0.17% 46.9 1.19% 0.98x 0.50% 1.44x 0.38% 1.53x 1.23% 99.96%
liquid-render 174.2 0.25% 180.7 0.16% 66.0 0.19% 64.1 0.46% 0.96x 0.30% 2.64x 0.31% 2.72x 0.52% 99.89%
lobsters 1204.1 0.51% 1226.8 0.72% 723.2 1.18% 721.6 1.11% 0.98x 0.88% 1.66x 1.29% 1.67x 1.22% 99.43%
mail 154.5 0.16% 160.3 2.06% 98.8 0.37% 105.3 0.20% 0.96x 2.07% 1.56x 0.40% 1.47x 0.25% 99.88%
psych-load 2355.9 0.03% 2416.8 0.03% 1656.3 0.02% 1418.4 0.03% 0.97x 0.04% 1.42x 0.03% 1.66x 0.04% 100.00%
railsbench 3496.9 0.10% 3492.9 0.32% 1831.1 0.13% 1750.1 0.91% 1.00x 0.34% 1.91x 0.16% 2.00x 0.91% 99.60%
rubocop 183.5 0.52% 184.2 0.52% 94.1 0.83% 89.2 0.77% 1.00x 0.73% 1.95x 0.98% 2.06x 0.93% 99.84%
ruby-lsp 188.2 0.12% 186.7 0.13% 104.6 1.29% 96.5 0.09% 1.01x 0.18% 1.80x 1.29% 1.95x 0.15% 99.75%
sequel 71.2 0.19% 71.0 0.46% 46.3 0.42% 47.6 0.40% 1.00x 0.50% 1.54x 0.46% 1.50x 0.44% 99.02%
binarytrees 340.5 1.29% 341.8 0.15% 151.3 3.63% 151.6 0.15% 1.00x 1.30% 2.25x 3.85% 2.25x 1.30% 99.99%
blurhash 346.5 0.14% 339.8 0.17% 169.4 0.02% 154.4 0.06% 1.02x 0.22% 2.05x 0.14% 2.24x 0.15% 99.99%
erubi 385.6 0.36% 205.3 0.19% 300.7 0.41% 175.6 0.21% 1.88x 0.41% 1.28x 0.55% 2.20x 0.42% 99.98%
etanni 316.9 0.16% 295.9 0.35% 296.2 0.06% 276.7 0.07% 1.07x 0.38% 1.07x 0.17% 1.15x 0.17% 99.98%
fannkuchredux 526.7 0.30% 511.6 0.09% 121.6 0.11% 118.7 0.14% 1.03x 0.31% 4.33x 0.32% 4.44x 0.33% 55.72%
fluentd 455.5 0.07% 457.4 0.09% 413.8 0.09% 365.3 8.18% 1.00x 0.11% 1.10x 0.11% 1.25x 8.18% 99.97%
graphql 332.9 0.10% 334.8 0.08% 281.3 0.25% 284.0 0.18% 0.99x 0.12% 1.18x 0.26% 1.17x 0.21% 98.40%
graphql-native 683.8 1.30% 536.0 0.07% 621.2 0.97% 481.5 0.10% 1.28x 1.30% 1.10x 1.62% 1.42x 1.30% 99.97%
lee 1097.7 1.44% 1103.9 0.89% 774.2 2.77% 766.7 0.78% 0.99x 1.69% 1.42x 3.12% 1.43x 1.64% 99.97%
matmul 535.5 0.17% 531.6 0.19% 217.5 0.34% 201.9 0.36% 1.01x 0.26% 2.46x 0.38% 2.65x 0.40% 99.82%
nbody 118.6 0.09% 113.3 0.49% 46.6 0.15% 39.6 0.28% 1.05x 0.50% 2.55x 0.17% 2.99x 0.30% 99.75%
nqueens 243.3 0.09% 238.7 0.13% 243.2 0.10% 48.1 0.19% 1.02x 0.16% 1.00x 0.13% 5.06x 0.21% 96.25%
optcarrot 5589.0 0.14% 5701.5 0.16% 1455.4 0.88% 1392.3 1.32% 0.98x 0.21% 3.84x 0.89% 4.01x 1.33% 99.51%
protoboeuf 170.8 0.05% 168.9 0.05% 45.0 0.13% 41.2 0.22% 1.01x 0.07% 3.80x 0.14% 4.15x 0.22% 99.99%
protoboeuf-encode 163.2 0.23% 169.1 1.25% 79.5 0.26% 35.5 3.87% 0.97x 1.27% 2.05x 0.35% 4.59x 3.88% 99.98%
rack 51.3 0.60% 48.5 0.25% 29.7 0.82% 27.5 0.24% 1.06x 0.65% 1.73x 1.02% 1.87x 0.65% 99.86%
ruby-json 334.8 0.06% 342.6 0.06% 300.7 0.05% 306.6 0.09% 0.98x 0.08% 1.11x 0.08% 1.09x 0.11% 99.97%
rubykon 1188.9 1.43% 1197.4 1.38% 566.6 1.15% 518.5 1.09% 0.99x 1.98% 2.10x 1.83% 2.29x 1.80% 99.95%
sudoku 569.5 0.10% 566.0 0.03% 140.1 0.20% 142.9 0.07% 1.01x 0.10% 4.06x 0.22% 3.99x 0.12% 99.62%
tinygql 739.0 0.03% 727.1 0.03% 406.6 0.03% 399.9 0.06% 1.02x 0.04% 1.82x 0.04% 1.85x 0.06% 99.99%
30k_ifelse 925.9 0.01% 930.9 0.01% 109.5 0.05% 117.2 0.04% 0.99x 0.02% 8.46x 0.05% 7.90x 0.04% 99.94%
30k_methods 693.0 0.04% 699.9 0.02% 55.7 0.17% 56.1 0.22% 0.99x 0.04% 12.45x 0.17% 12.35x 0.22% 99.94%
cfunc_itself 85.2 0.76% 85.8 1.01% 27.1 0.03% 25.0 0.06% 0.99x 1.27% 3.14x 0.76% 3.40x 0.77% 94.17%
fib 227.8 0.09% 228.9 0.13% 31.6 0.55% 29.6 0.16% 1.00x 0.16% 7.21x 0.56% 7.69x 0.19% 100.00%
getivar 142.3 0.29% 136.1 0.34% 11.3 1.52% 9.9 1.46% 1.05x 0.45% 12.60x 1.55% 14.43x 1.49% 71.35%
keyword_args 267.1 0.36% 278.3 0.64% 29.4 0.06% 23.2 0.04% 0.96x 0.73% 9.07x 0.36% 11.53x 0.36% 95.64%
object-new 92.1 0.14% 108.7 0.10% 64.0 0.16% 81.3 0.14% 0.85x 0.17% 1.44x 0.21% 1.13x 0.20% 85.52%
respond_to 211.9 0.11% 208.3 0.13% 9.0 0.44% 7.3 0.95% 1.02x 0.17% 23.60x 0.46% 29.21x 0.95% 94.41%
ruby-xor 121.6 0.39% 124.1 0.54% 35.2 0.18% 21.0 0.31% 0.98x 0.66% 3.46x 0.43% 5.78x 0.50% 99.99%
setivar 82.2 0.23% 83.1 0.14% 8.8 0.96% 4.8 0.70% 0.99x 0.26% 9.36x 0.99% 17.10x 0.73% 79.52%
setivar_object 79.7 0.41% 85.2 5.31% 35.4 1.13% 33.2 10.66% 0.94x 5.33% 2.25x 1.21% 2.40x 10.66% 80.28%
setivar_young 79.8 0.73% 86.1 2.05% 35.0 1.06% 31.2 2.21% 0.93x 2.18% 2.28x 1.29% 2.56x 2.33% 80.28%
str_concat 74.4 0.68% 72.4 1.18% 28.9 0.64% 24.8 0.56% 1.03x 1.36% 2.58x 0.93% 3.00x 0.88% 99.87%
throw 23.6 1.17% 25.8 0.27% 16.9 0.58% 20.4 0.51% 0.92x 1.20% 1.40x 1.30% 1.16x 1.27% 99.98%

RSD is relative standard deviation - the standard deviation divided by the mean, expressed as a percentage.
% in YJIT is the percentage of instructions that complete in YJIT rather than exiting to the non-JITted interpreter. YJIT performs better when this is higher.
Speedup is relative to interpreted CRuby. So an "MJIT speedup" of 1.21x means MJIT runs at 1.21 times the iters/second of CRuby with JIT disabled.

You can find our benchmark code in the yjit-bench Github repo.
Our benchmark-runner and reporting code is in the yjit-metrics Github repo.

Tested Ruby version for development CRuby and YJIT: ruby 3.4.0dev (2024-10-26T13:20:34Z :detached: 484ea00d2e) +YJIT +PRISM [x86_64-linux]
Tested Ruby version for stable CRuby and YJIT: ruby 3.3.4 (2024-07-09 revision be1089c8ec) +YJIT [x86_64-linux]

Benchmark Memory Usage Details

Select Platform
bench CRuby 3.3.4 mem (MiB) CRuby 3.4.0dev mem (MiB) YJIT 3.3.4 mem (MiB) YJIT 3.4.0dev mem (MiB) Inline Code Outlined Code YJIT Mem overhead
activerecord 64 56 73 66 2 2 17.4%
chunky-png 44 49 39 49 1 1 -0.2%
erubi-rails 105 105 112 114 2 2 8.4%
hexapdf 149 134 283 260 2 2 93.8%
liquid-c 34 27 40 31 1 1 14.0%
liquid-compile 32 25 35 30 1 1 18.2%
liquid-render 34 26 39 33 1 1 24.2%
lobsters 277 265 325 321 8 7 21.0%
mail 52 48 57 53 1 1 11.0%
psych-load 32 24 34 28 1 1 12.1%
railsbench 106 97 121 116 4 3 19.0%
rubocop 91 82 125 120 6 5 45.6%
ruby-lsp 70 62 80 69 1 1 12.4%
sequel 36 30 40 33 1 1 12.0%
binarytrees 25 16 29 17 1 1 3.7%
blurhash 21 14 22 15 1 1 6.0%
erubi 28 38 29 40 1 1 4.6%
etanni 23 19 24 20 1 1 5.9%
fannkuchredux 20 13 20 14 1 1 5.2%
fluentd 188 199 197 275 1 1 38.3%
graphql 37 33 42 34 1 1 4.7%
graphql-native 39 34 41 38 1 1 9.8%
lee 33 24 36 27 1 1 13.5%
matmul 25 21 26 22 1 1 2.8%
nbody 20 13 20 14 1 1 6.5%
nqueens 20 13 21 15 1 1 10.1%
optcarrot 61 47 68 50 1 1 7.3%
protoboeuf 36 27 40 28 1 1 4.3%
protoboeuf-encode 64 42 68 116 1 1 171.5%
rack 31 22 32 25 1 1 10.7%
ruby-json 21 13 21 14 1 1 4.4%
rubykon 24 17 26 19 1 1 8.5%
sudoku 20 13 21 14 1 1 5.2%
tinygql 26 20 28 23 1 1 10.8%
30k_ifelse 60 110 91 121 7 6 9.9%
30k_methods 49 53 59 58 3 2 9.9%
cfunc_itself 20 13 20 13 1 1 4.5%
fib 20 13 20 13 1 1 4.6%
getivar 20 13 20 13 1 1 4.6%
keyword_args 20 13 20 13 1 1 4.6%
object-new 20 13 20 13 1 1 4.4%
respond_to 20 13 20 14 1 1 6.9%
ruby-xor 21 14 21 15 1 1 4.3%
setivar 20 13 20 13 1 1 4.9%
setivar_object 20 13 20 13 1 1 4.5%
setivar_young 20 13 20 13 1 1 4.5%
str_concat 46 39 59 71 1 1 80.1%
throw 20 13 20 13 1 1 4.6%

Memory is shown in mebibytes (1024 * 1024 bytes.)

Older YJIT allocated an additional 256MiB for generated code. Current YJIT allocates executable memory on demand, so this overhead should no longer be present.

Number of Iterations and Warmups Tested

bench CRuby 3.3.4 warmups CRuby 3.3.4 iters CRuby 3.4.0dev warmups CRuby 3.4.0dev iters YJIT 3.3.4 warmups YJIT 3.3.4 iters YJIT 3.4.0dev warmups YJIT 3.4.0dev iters
activerecord 5 84 5 81 50 155 50 158
chunky-png 5 31 5 31 50 15 50 20
erubi-rails 5 15 5 15 50 10 50 10
hexapdf 5 10 5 10 50 10 50 10
liquid-c 5 415 5 417 50 593 50 607
liquid-compile 5 413 5 405 50 548 50 588
liquid-render 5 168 5 162 50 404 50 417
lobsters 5 20 5 20 50 10 50 10
mail 5 189 5 182 50 251 50 233
psych-load 5 10 5 10 50 10 50 10
railsbench 5 10 5 10 50 10 50 10
rubocop 5 157 5 156 50 253 50 266
ruby-lsp 5 155 5 156 50 235 50 259
sequel 5 417 5 418 50 598 50 581
binarytrees 5 84 5 83 50 148 50 148
blurhash 5 82 5 84 50 128 50 145
erubi 5 73 5 141 50 50 50 121
etanni 5 90 5 97 50 52 50 59
fannkuchredux 5 52 5 54 50 100 50 108
fluentd 5 61 5 61 50 23 50 31
graphql 5 86 5 85 50 57 50 56
graphql-native 5 39 5 51 50 10 50 13
lee 5 23 5 23 50 10 50 10
matmul 5 52 5 52 50 88 50 99
nbody 5 248 5 260 50 595 50 706
nqueens 5 119 5 121 50 74 50 562
optcarrot 5 10 5 10 50 10 50 10
protoboeuf 5 171 5 173 50 617 50 677
protoboeuf-encode 5 179 5 173 50 327 50 793
rack 5 580 5 614 50 959 50 1040
ruby-json 5 85 5 83 50 50 50 48
rubykon 5 21 5 21 50 10 50 10
sudoku 5 48 5 49 50 163 50 159
tinygql 5 36 5 37 50 24 50 25
30k_ifelse 5 28 5 28 50 214 50 194
30k_methods 5 39 5 38 50 482 50 478
cfunc_itself 5 347 5 345 50 1046 50 1136
fib 5 127 5 127 50 900 50 962
getivar 5 206 5 216 50 2270 50 2621
keyword_args 5 108 5 103 50 959 50 1231
object-new 5 321 5 271 50 406 50 310
respond_to 5 137 5 140 50 3258 50 4037
ruby-xor 5 242 5 237 50 803 50 1376
setivar 5 360 5 356 50 3124 50 5718
setivar_object 5 372 5 347 50 762 50 787
setivar_young 5 371 5 344 50 771 50 844
str_concat 5 398 5 409 50 989 50 1159
throw 5 1267 5 1160 50 1730 50 1421

Different Ruby configurations want different amounts of warmup. With no JIT, CRuby needs hardly any. YJIT and MJIT 3.0 both warm up quite quickly, while MJIT in 3.1 often slows down for a time as it compiles, after an unpredictable delay.

Benchmark YJIT Stats

Hover your cursor over the benchmark names for descriptions of each benchmark.

bench Exit Report Inline Outlined Comp iSeqs Comp Blocks Inval Inval Ratio Bind Alloc Bind Set Const Bumps Compile Time MS
activerecord (click) 1451239 1259642 213 2296 0 0% 0 0 64.507258
chunky-png (click) 301387 274519 86 1133 1 0% 0 0 33.197917
erubi-rails (click) 1948017 1661951 248 2909 8 0% 0 0 79.059424
hexapdf (click) 1497640 1254343 598 13865 35 0% 0 0 393.446514
liquid-c (click) 492117 382289 122 1906 5 0% 0 0 52.18047
liquid-compile (click) 414627 347008 150 2206 2 0% 0 0 68.523634
liquid-render (click) 608428 550906 139 2520 12 0% 0 0 69.658441
lobsters (click) 8309880 6908447 3212 54228 181 0% 0 0 1854.698968
mail (click) 753400 661177 346 5481 16 0% 0 0 160.11086
psych-load (click) 262490 223714 64 656 3 0% 0 0 20.389428
railsbench (click) 3324139 2910491 1635 16737 41 0% 0 0 474.967963
rubocop (click) 5808486 4936202 2891 52121 110 0% 4 0 1513.708543
ruby-lsp (click) 843474 709230 308 4986 26 0% 0 0 141.922015
sequel (click) 459461 426459 15 125 0 0% 0 0 4.380811
binarytrees (click) 9627 8546 8 75 0 0% 0 0 2.999755
blurhash (click) 57136 49713 29 501 0 0% 0 0 16.124008
erubi (click) 221372 209901 9 108 0 0% 0 0 3.605239
etanni (click) 27632 25855 9 81 0 0% 0 0 2.742842
fannkuchredux (click) 24038 30826 5 257 0 0% 0 0 7.684338
fluentd (click) 353068 309570 10 109 0 0% 0 0 3.887009
graphql (click) 396123 327710 69 695 0 0% 0 0 20.651151
graphql-native (click) 357174 296881 40 270 0 0% 0 0 8.404484
lee (click) 275932 234728 48 803 0 0% 0 0 24.89182
matmul (click) 11838 4563 10 119 0 0% 0 0 3.934437
nbody (click) 14884 19325 8 196 0 0% 0 0 5.104254
nqueens (click) 21155 28164 7 247 0 0% 0 0 7.254148
optcarrot (click) 327944 312320 190 4549 34 0% 0 0 104.126384
protoboeuf (click) 163392 155036 14 1610 0 0% 0 0 45.902151
protoboeuf-encode (click) 234584 230620 16 1249 0 0% 0 0 31.887067
rack (click) 229070 194160 36 417 0 0% 0 0 10.847511
ruby-json (click) 25799 22401 10 188 0 0% 0 0 5.322362
rubykon (click) 140693 120664 138 1568 3 0% 0 0 44.772045
sudoku (click) 48090 43120 9 536 0 0% 0 0 16.000759
tinygql (click) 268310 203241 61 787 5 0% 0 0 22.11603
30k_ifelse (click) 6315665 5791705 9261 56473 0 0% 0 0 1584.359894
30k_methods (click) 2235566 1593704 5780 19359 0 0% 0 0 455.62572
cfunc_itself (click) 6912 5554 7 62 0 0% 0 0 1.968527
fib (click) 4041 4120 5 37 0 0% 0 0 1.43797
getivar (click) 5037 6014 6 64 0 0% 0 0 1.890267
keyword_args (click) 7637 6022 7 60 0 0% 0 0 2.015518
object-new (click) 3469 3394 5 35 0 0% 0 0 1.351968
respond_to (click) 9322 2039 6 95 0 0% 0 0 2.759504
ruby-xor (click) 6437 6880 6 72 0 0% 0 0 2.230222
setivar (click) 4188 4690 6 44 0 0% 0 0 1.525888
setivar_object (click) 4717 4838 6 46 0 0% 0 0 1.682068
setivar_young (click) 5427 5560 7 54 0 0% 0 0 1.875398
str_concat (click) 7646 7893 9 81 0 0% 0 0 2.752949
throw (click) 7384 5592 8 59 0 0% 0 0 2.259617

YJIT stats correspond to the YJIT stats exit report.

Note: currently, all stats are collected on x86_64, not ARM.

Raw JSON data files

All graphs and table data in this page comes from processing these data files, which come from benchmark runs.