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 line is the
geometric mean of those per-benchmark ratios across a suite. 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)