Groovy JMH performance summary (normalised against trailing 90-day baseline)

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.

Invokedynamic (indy)

Classic (non-indy)

Per-suite raw data under dev/bench/jmh/<suite>/<mode>/data.js · Generated by github-action-benchmark · Apache Groovy benchmark home