For every benchmark, the value from each run is divided by the mean of that
same benchmark's values over the preceding 90 days (its rolling "normal").
Benchmarks reported as ops/ms are kept as-is; benchmarks reported
in time-per-op units (ms/op, us/op, …) are
inverted, so on both charts higher is always faster and
1.0 means "in line with the last 90 days". Each solid line is the
geometric mean of those per-benchmark ratios across a suite; the
dashed overlay is a 7-run rolling median of those points, which smooths
through CI-runner noise so the trend stays readable when an individual
runner has a slow day. Click any solid-line point to open its commit on
GitHub. The core and grails suites each recombine
their two CI-split halves (A–G/H–Z, A–D/E–Z);
indy and classic are kept on separate charts.
indy)indy)