Skip to content

General benchmarks

Soichiro Isshiki edited this page Feb 1, 2025 · 4 revisions

Results of general benchmarks

  • The graph shows the speed ratio against truffleruby for the benchmarks measured with yjit-bench.
  • benchmark codes are in the official repo and plb2.
  • measured by yjit-bench with --rss --harness=harness-warmup option.
  • Rubies used:
    • monoruby: monoruby 0.3.0
    • yjit: ruby 3.4.1 (2024-12-25 revision 48d4efcb85) +YJIT +PRISM [x86_64-linux]
    • truffleruby-24.1.1: truffleruby 24.1.1, like ruby 3.2.4, Oracle GraalVM Native [x86_64-linux]
  • The higher, the better.

micro_bench

Raw data

  • execution time in milli-seconds and resident set size (RSS, memory usage) in MiB are shown.
  • monoruby/yjit: ratio of monoruby/yjit time. Higher is better for yjit. Above 1 represents a speedup.
  • monoruby/truffle: ratio of monoruby/truffleruby-24.1.1 time. Higher is better for truffleruby. Above 1 represents a speedup.
bench monoruby (ms) RSS (MiB) yjit (ms) RSS (MiB) truffle (ms) RSS (MiB) monoruby/yjit monoruby/truffle
bedcov 4412.0 234.3 4803.9 413.8 1881.8 1909.5 0.918 2.345
binarytrees 175.0 28.7 137.0 22.0 31.7 1126.4 1.278 5.525
matmul 39.7 35.0 121.8 22.8 1.4 803.2 0.326 29.059
nbody 8.5 27.7 21.9 14.0 1.1 690.2 0.389 7.473
nqueens 14.7 24.7 31.0 14.2 7.2 637.9 0.475 2.044
optcarrot 520.4 79.0 720.9 54.7 432.2 1506.3 0.722 1.204
rubykon 214.9 34.9 348.2 18.6 65.2 2279.9 0.617 3.298
so_mandelbrot 39.9 22.9 509.5 14.5 26.3 548.8 0.078 1.517
sudoku 41.6 23.9 88.8 14.9 17.5 1165.2 0.469 2.381
fib 16.7 23.5 17.4 15.0 8.8 483.4 0.960 1.895

Machine spec

  • Architecture: x86_64
  • CPU(s): 32
    • Model name: 13th Gen Intel(R) Core(TM) i9-13900HX
    • Thread(s) per core: 2
    • Core(s) per socket: 16
  • Caches (sum of all):
    • L1d: 768 KiB (16 instances)
    • L1i: 512 KiB (16 instances)
    • L2: 32 MiB (16 instances)
    • L3: 36 MiB (1 instance)