master: ruby 4.1.0dev (2026-08-05T17:06:40Z master 895084e65b) +PRISM [arm64-darwin25]
subseq-embed: ruby 4.1.0dev (2026-08-05T18:34:39Z str-subseq-embed-fix 59a866255f) +PRISM [arm64-darwin25]

---------------------  -------------  -----------------  --------------------  -------------------
bench                    master (ms)  subseq-embed (ms)  subseq-embed 1st itr  master/subseq-embed
activerecord            149.5 ± 2.1%       146.3 ± 0.7%                 1.031                1.022
chunky-png              502.1 ± 0.3%       501.3 ± 0.3%                 1.000                1.002
erubi-rails             662.0 ± 0.3%       664.5 ± 0.3%                 1.023                0.996
hexapdf                1255.5 ± 0.2%      1276.7 ± 0.7%                 0.977                0.983
liquid-c                 31.3 ± 6.6%        31.2 ± 7.0%                 1.008                1.003
liquid-compile           29.0 ± 6.7%        28.3 ± 5.5%                 0.983                1.023
liquid-render            80.3 ± 2.5%        80.0 ± 2.2%                 0.984                1.004
lobsters                476.2 ± 0.9%       474.4 ± 0.8%                 1.051                1.004
mail                     68.4 ± 1.5%        68.3 ± 1.4%                 0.985                1.001
psych-load             1280.4 ± 1.0%      1238.3 ± 0.9%                 1.000                1.034
railsbench              920.2 ± 1.2%       907.4 ± 1.4%                 1.018                1.014
rubocop                 101.3 ± 5.8%       101.8 ± 5.9%                 1.007                0.995
ruby-lsp                 97.6 ± 1.1%        94.9 ± 1.6%                 1.001                1.029
sequel                   30.9 ± 3.4%        31.0 ± 3.5%                 0.993                0.997
shipit                  827.1 ± 1.3%       826.1 ± 1.5%                 0.977                1.001
addressable-equality    350.7 ± 0.4%       352.8 ± 0.3%                 1.006                0.994
addressable-getters      88.5 ± 0.9%        87.8 ± 0.8%                 1.012                1.008
addressable-join        167.1 ± 0.8%       164.7 ± 0.7%                 1.010                1.015
addressable-merge        91.5 ± 0.6%        90.4 ± 0.7%                 1.036                1.012
addressable-new          42.3 ± 0.7%        42.4 ± 0.8%                 0.963                0.998
addressable-normalize   197.3 ± 1.2%       196.9 ± 0.4%                 0.997                1.002
addressable-parse       135.8 ± 0.6%       135.3 ± 0.4%                 1.004                1.004
addressable-setters      77.3 ± 0.9%        77.6 ± 0.7%                 0.973                0.995
addressable-to-s         88.0 ± 0.6%        87.4 ± 0.7%                 1.009                1.007
binarytrees             225.7 ± 0.4%       226.7 ± 0.4%                 1.004                0.995
blurhash                251.4 ± 0.8%       250.9 ± 0.3%                 0.987                1.002
erubi                   122.7 ± 0.6%       123.0 ± 2.0%                 0.987                0.997
etanni                  209.2 ± 0.5%       209.7 ± 0.5%                 1.004                0.998
fannkuchredux           357.6 ± 0.3%       357.0 ± 0.3%                 1.002                1.002
fluentd                 254.5 ± 0.5%       245.2 ± 0.5%                 1.072                1.038
gcbench                1291.1 ± 0.2%      1297.5 ± 0.3%                 0.992                0.995
graphql                  39.4 ± 1.0%        39.5 ± 0.8%                 1.040                0.997
graphql-native          176.3 ± 0.4%       179.3 ± 0.4%                 0.985                0.983
knucleotide              27.4 ± 6.3%        27.2 ± 4.7%                 0.989                1.008
lee                     501.2 ± 0.4%       499.0 ± 0.3%                 0.995                1.004
matmul                  358.4 ± 0.3%       358.7 ± 0.5%                 1.000                0.999
nbody                    63.8 ± 0.6%        63.8 ± 0.4%                 1.000                1.000
nqueens                 162.8 ± 0.3%       162.8 ± 0.4%                 1.000                1.000
optcarrot              3289.1 ± 0.7%      3303.8 ± 0.7%                 0.996                0.996
protoboeuf              103.0 ± 0.4%       103.0 ± 0.5%                 1.002                1.000
protoboeuf-encode        99.4 ± 1.3%        99.3 ± 1.3%                 1.014                1.001
rack                     31.4 ± 3.4%        31.6 ± 4.7%                 1.005                0.996
ruby-json               154.4 ± 0.5%       154.2 ± 0.5%                 1.002                1.001
rubyboy                3093.1 ± 0.1%      3117.6 ± 0.2%                 0.995                0.992
rubykon                 577.5 ± 1.4%       577.3 ± 1.4%                 1.001                1.000
splay                   90.1 ± 64.2%       92.0 ± 61.1%                 0.982                0.979
sudoku                  398.7 ± 0.2%       399.5 ± 0.2%                 0.994                0.998
tinygql                 382.1 ± 0.3%       380.7 ± 0.3%                 0.999                1.004
30k_ifelse              342.5 ± 0.8%       339.9 ± 0.6%                 1.008                1.008
30k_methods             286.2 ± 1.0%       288.7 ± 0.4%                 0.985                0.991
attr_accessor           128.0 ± 0.5%       127.9 ± 0.5%                 0.999                1.001
cfunc_itself             60.6 ± 0.7%        60.8 ± 0.5%                 0.997                0.997
fib                     161.8 ± 0.5%       162.2 ± 0.4%                 0.995                0.998
getivar                  90.9 ± 0.7%        90.8 ± 0.6%                 0.999                1.001
getivar-module          183.3 ± 0.5%       183.1 ± 0.5%                 0.999                1.001
keyword_args            144.1 ± 0.4%       142.3 ± 0.6%                 1.013                1.013
loops-times             715.6 ± 0.3%       711.7 ± 0.2%                 1.005                1.005
object-new               35.2 ± 0.8%        35.2 ± 0.8%                 0.998                1.000
object-new-initialize    71.3 ± 0.8%        71.0 ± 0.6%                 1.002                1.004
object-new-no-escape    138.8 ± 0.5%       138.5 ± 0.4%                 1.007                1.002
respond_to              152.7 ± 0.3%       151.6 ± 0.4%                 1.008                1.007
ruby-xor                 85.4 ± 0.7%        85.3 ± 0.5%                 1.002                1.002
send_bmethod            147.0 ± 0.3%       147.6 ± 1.3%                 0.978                0.996
send_cfunc_block        191.9 ± 0.4%       191.8 ± 0.6%                 0.999                1.000
send_rubyfunc_block      98.0 ± 0.5%        97.4 ± 0.4%                 1.006                1.006
setivar                  60.3 ± 0.8%        60.4 ± 0.7%                 0.998                0.999
setivar_object           68.4 ± 1.2%        68.2 ± 1.2%                 1.001                1.004
setivar_young            68.5 ± 1.3%        68.2 ± 1.2%                 0.984                1.005
str_concat               55.3 ± 0.7%        55.5 ± 0.6%                 0.992                0.996
structaref              131.2 ± 1.5%       132.9 ± 0.5%                 1.016                0.987
structaset              118.8 ± 0.5%       118.9 ± 0.7%                 1.000                1.000
throw                    14.0 ± 1.3%        13.9 ± 1.3%                 1.006                1.008
---------------------  -------------  -----------------  --------------------  -------------------

GC summary:
-------  ---------------  ----------------  -------------  --------------  -------------  -------------  -------------
bench    mark/iter ratio  sweep/iter ratio  mark/GC ratio  sweep/GC ratio     major/iter     minor/iter     minor GC %
gcbench            0.696             0.994          0.670           0.957   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.
- 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.
