master: ruby 4.1.0dev (2026-07-02T09:24:35Z master 7c69f93d53) +PRISM [arm64-darwin25]
subseq-embed: ruby 4.1.0dev (2026-07-02T11:29:55Z str-subseq-embed-f.. e7c2d5062c) +PRISM [arm64-darwin25]
raw-ptr-reverted: ruby 4.1.0dev (2026-07-03T06:25:25Z rstring-raw-ptr-re.. 4bb015491d) +PRISM [arm64-darwin25]

---------------------  -------------  -----------------  ---------------------  --------------------  ------------------------  -------------------  -----------------------
bench                    master (ms)  subseq-embed (ms)  raw-ptr-reverted (ms)  subseq-embed 1st itr  raw-ptr-reverted 1st itr  master/subseq-embed  master/raw-ptr-reverted
activerecord            147.8 ± 0.5%       151.5 ± 1.4%           148.7 ± 0.6%                 0.925                     0.996                0.976                    0.994
chunky-png              498.7 ± 0.3%       510.5 ± 0.3%           492.5 ± 0.4%                 0.978                     1.015                0.977                    1.013
erubi-rails             665.2 ± 1.2%       670.2 ± 2.0%           695.1 ± 1.1%                 1.000                     0.986                0.993                    0.957
hexapdf                1238.7 ± 0.5%      1250.7 ± 0.1%          1243.0 ± 0.7%                 1.002                     1.001                0.990                    0.996
liquid-c                 30.6 ± 3.7%        29.9 ± 4.0%            31.0 ± 6.4%                 1.018                     0.984                1.024                    0.988
liquid-compile           28.4 ± 4.3%        28.4 ± 5.4%            28.8 ± 0.9%                 1.030                     0.986                0.999                    0.984
liquid-render            79.6 ± 2.1%        78.9 ± 2.3%            79.4 ± 2.1%                 1.036                     1.005                1.009                    1.003
lobsters                474.9 ± 0.4%       471.6 ± 0.6%           473.6 ± 0.8%                 0.980                     0.977                1.007                    1.003
mail                    71.9 ± 20.2%        68.2 ± 1.5%            69.0 ± 1.7%                 0.996                     0.979                1.054                    1.043
psych-load             1257.6 ± 0.5%      1244.7 ± 0.3%          1248.6 ± 0.3%                 1.005                     1.003                1.010                    1.007
railsbench              914.2 ± 1.6%       895.5 ± 0.6%           902.5 ± 1.3%                 1.013                     0.974                1.021                    1.013
rubocop                 100.0 ± 5.5%       100.7 ± 6.1%           101.1 ± 5.8%                 0.984                     0.912                0.993                    0.989
ruby-lsp                 95.4 ± 2.3%        96.2 ± 1.3%            95.4 ± 2.7%                 1.046                     1.004                0.992                    1.000
sequel                   30.8 ± 3.7%        30.7 ± 3.8%            31.0 ± 3.6%                 0.893                     0.988                1.001                    0.993
shipit                  823.0 ± 0.8%       825.2 ± 0.3%           825.2 ± 1.1%                 1.006                     1.001                0.997                    0.997
addressable-equality    353.8 ± 0.2%       358.0 ± 0.6%           353.3 ± 0.3%                 0.983                     1.004                0.988                    1.001
addressable-getters      88.2 ± 0.7%        89.8 ± 1.5%            92.1 ± 0.7%                 0.994                     0.961                0.982                    0.958
addressable-join        164.2 ± 0.4%       164.7 ± 0.6%           163.2 ± 0.6%                 0.974                     1.000                0.997                    1.006
addressable-merge        90.8 ± 0.6%        92.2 ± 1.4%            90.7 ± 0.6%                 0.977                     0.980                0.985                    1.001
addressable-new          42.6 ± 0.7%        42.6 ± 0.8%            42.4 ± 1.2%                 0.966                     0.967                1.000                    1.005
addressable-normalize   199.1 ± 0.4%       200.1 ± 0.3%           199.3 ± 0.5%                 0.995                     0.975                0.995                    0.999
addressable-parse       136.8 ± 0.6%       138.3 ± 0.7%           139.9 ± 0.4%                 0.971                     0.964                0.989                    0.978
addressable-setters      78.3 ± 0.5%        78.1 ± 0.6%            77.9 ± 0.7%                 0.983                     0.984                1.002                    1.005
addressable-to-s         89.1 ± 0.8%        90.0 ± 1.5%            92.8 ± 0.8%                 1.000                     0.964                0.990                    0.960
binarytrees             223.7 ± 0.6%       225.6 ± 0.4%           226.3 ± 0.4%                 0.988                     0.984                0.991                    0.988
blurhash                251.0 ± 0.4%       250.9 ± 0.3%           250.9 ± 0.3%                 1.000                     1.001                1.001                    1.001
erubi                   122.9 ± 0.5%       123.2 ± 0.5%           125.7 ± 0.6%                 0.998                     0.979                0.998                    0.977
etanni                  210.5 ± 0.7%       210.5 ± 0.5%           213.4 ± 0.5%                 1.009                     0.991                1.000                    0.986
fannkuchredux           357.0 ± 0.4%       356.9 ± 0.2%           357.2 ± 0.4%                 1.007                     1.009                1.000                    0.999
fluentd                 256.9 ± 0.4%       207.2 ± 0.4%           255.6 ± 0.4%                 1.041                     1.017                1.240                    1.005
gcbench                1308.4 ± 0.2%      1289.5 ± 0.2%          1291.0 ± 0.3%                 1.015                     1.016                1.015                    1.013
graphql                  40.8 ± 6.7%        39.2 ± 1.7%            39.4 ± 1.3%                 0.931                     0.988                1.041                    1.035
graphql-native          171.9 ± 0.5%       175.0 ± 0.4%           174.4 ± 0.5%                 1.035                     1.042                0.982                    0.986
knucleotide              27.8 ± 6.7%        27.7 ± 6.7%            27.7 ± 6.6%                 1.129                     1.057                1.003                    1.003
lee                     528.2 ± 0.4%       527.4 ± 0.3%           530.0 ± 0.2%                 0.997                     1.010                1.001                    0.997
matmul                  356.9 ± 0.2%       356.9 ± 0.3%           358.1 ± 0.4%                 1.127                     1.123                1.000                    0.997
nbody                    63.8 ± 0.5%        63.9 ± 0.6%            63.8 ± 0.5%                 0.979                     1.001                0.999                    1.000
nqueens                 162.3 ± 0.4%       162.6 ± 0.4%           162.5 ± 0.3%                 0.998                     0.999                0.998                    0.999
optcarrot              3432.2 ± 0.6%      3431.3 ± 0.8%          3423.8 ± 0.7%                 1.002                     1.003                1.000                    1.002
protoboeuf              102.4 ± 0.8%       102.2 ± 0.5%           105.0 ± 0.6%                 1.002                     0.969                1.002                    0.976
protoboeuf-encode        99.2 ± 1.0%        99.3 ± 1.0%            99.7 ± 1.0%                 0.997                     0.972                0.999                    0.995
rack                     31.8 ± 4.6%        31.0 ± 3.3%            31.7 ± 4.6%                 1.015                     1.012                1.026                    1.006
ruby-json               150.4 ± 0.6%       150.4 ± 0.5%           149.6 ± 0.5%                 0.994                     1.008                1.000                    1.006
rubyboy                3122.1 ± 0.3%      3122.4 ± 0.1%          3112.5 ± 0.1%                 0.997                     1.001                1.000                    1.003
rubykon                 577.2 ± 1.3%       574.5 ± 1.4%           574.0 ± 1.5%                 1.000                     0.999                1.005                    1.006
splay                   90.8 ± 61.5%       89.6 ± 62.9%           91.9 ± 62.3%                 1.002                     1.005                1.013                    0.988
sudoku                  399.2 ± 0.3%       398.7 ± 0.3%           398.3 ± 0.2%                 1.002                     1.002                1.001                    1.002
tinygql                 378.6 ± 0.2%       378.5 ± 0.3%           379.8 ± 0.2%                 1.002                     0.994                1.000                    0.997
30k_ifelse              337.0 ± 1.4%       341.8 ± 0.6%           342.2 ± 0.8%                 0.971                     0.974                0.986                    0.985
30k_methods             286.7 ± 0.4%       289.6 ± 0.4%           286.3 ± 1.0%                 1.004                     1.015                0.990                    1.001
attr_accessor           128.0 ± 0.4%       128.1 ± 0.6%           127.4 ± 0.4%                 0.980                     1.004                0.999                    1.005
cfunc_itself             60.5 ± 0.7%        60.7 ± 0.6%            60.5 ± 0.6%                 1.010                     1.013                0.997                    1.001
fib                     162.2 ± 0.4%       161.7 ± 0.4%           162.0 ± 0.5%                 1.003                     1.003                1.004                    1.001
getivar                  90.8 ± 0.5%        90.7 ± 0.8%            90.6 ± 0.5%                 0.999                     1.002                1.001                    1.002
getivar-module          180.6 ± 0.6%       180.2 ± 0.7%           181.7 ± 0.4%                 0.992                     0.986                1.002                    0.994
keyword_args            137.2 ± 0.5%       137.4 ± 0.4%           136.1 ± 0.5%                 0.998                     1.009                0.999                    1.008
loops-times             709.2 ± 0.2%       720.2 ± 0.2%           707.9 ± 0.2%                 0.982                     0.995                0.985                    1.002
object-new               36.3 ± 1.0%        36.1 ± 0.8%            36.1 ± 0.9%                 1.008                     1.008                1.006                    1.005
object-new-initialize    70.8 ± 0.7%        71.0 ± 0.7%            70.7 ± 0.7%                 1.003                     1.008                0.997                    1.001
object-new-no-escape    140.0 ± 0.4%       139.7 ± 0.5%           140.5 ± 0.4%                 1.003                     0.998                1.002                    0.996
respond_to              149.8 ± 0.5%       149.6 ± 0.4%           149.5 ± 0.3%                 1.001                     1.003                1.001                    1.003
ruby-xor                 84.6 ± 0.6%        84.3 ± 0.5%            84.5 ± 0.5%                 1.003                     0.999                1.004                    1.002
send_bmethod            148.1 ± 0.4%       147.6 ± 0.5%           146.0 ± 0.4%                 1.001                     1.014                1.003                    1.014
send_cfunc_block        192.1 ± 0.3%       191.7 ± 0.3%           191.9 ± 0.5%                 0.998                     0.998                1.002                    1.001
send_rubyfunc_block      97.6 ± 0.6%        98.6 ± 0.4%            97.6 ± 0.5%                 0.990                     0.998                0.990                    1.000
setivar                  60.7 ± 0.8%        60.8 ± 0.6%            60.7 ± 0.6%                 0.998                     0.997                0.998                    1.000
setivar_object           70.9 ± 2.5%        70.6 ± 2.5%            70.4 ± 2.6%                 1.014                     1.011                1.004                    1.007
setivar_young            70.6 ± 2.1%        70.5 ± 2.4%            70.1 ± 2.3%                 0.981                     0.995                1.002                    1.007
str_concat               55.2 ± 0.8%        55.4 ± 0.8%            55.8 ± 0.9%                 0.987                     0.982                0.998                    0.990
structaref              130.7 ± 0.9%       130.2 ± 0.4%           132.3 ± 0.6%                 1.001                     0.984                1.004                    0.988
structaset              119.1 ± 0.7%       118.9 ± 0.5%           142.8 ± 0.3%                 1.001                     0.819                1.002                    0.834
throw                    14.5 ± 1.4%        14.2 ± 1.6%            14.1 ± 1.4%                 1.030                     1.035                1.016                    1.024
---------------------  -------------  -----------------  ---------------------  --------------------  ------------------------  -------------------  -----------------------

GC summary:
-------  ----------------  ---------------  ----------------  -------------  --------------  -------------  -------------  -------------
bench          comparison  mark/iter ratio  sweep/iter ratio  mark/GC ratio  sweep/GC ratio     major/iter     minor/iter     minor GC %
gcbench      subseq-embed            0.678             1.002          0.653           0.965   0.0  →   0.0  54.0  →  52.0  100%  →  100%
gcbench  raw-ptr-reverted            0.685             1.002          0.660           0.965   0.0  →   0.0  54.0  →  52.0  100%  →  100%
-------  ----------------  ---------------  ----------------  -------------  --------------  -------------  -------------  -------------

Legend:
- subseq-embed 1st itr: ratio of master/subseq-embed time for the first benchmarking iteration.
- master/subseq-embed: ratio of master/subseq-embed time. Higher is better for subseq-embed. Above 1 represents a speedup.
- raw-ptr-reverted 1st itr: ratio of master/raw-ptr-reverted time for the first benchmarking iteration.
- master/raw-ptr-reverted: ratio of master/raw-ptr-reverted time. Higher is better for raw-ptr-reverted. Above 1 represents a speedup.
- GC summary compares master → comparison. Ratio columns are master/comparison; above 1 means the comparison spent less GC time.
- mark/iter ratio and sweep/iter ratio compare total GC phase time per benchmark iteration, so they include both per-GC cost and GC frequency changes.
- mark/GC ratio and sweep/GC ratio compare average phase time per GC, isolating whether each GC became cheaper or more expensive.
- major/iter, minor/iter, and minor GC % show master → comparison values, not ratios. Rows with no GC activity are omitted.
