Groovy JMH ad-hoc benchmarks

Exploratory, idiom-vs-idiom micro-benchmarks from the org.apache.groovy.adhoc package — kept out of the core regression suites on purpose. Each chart shows the latest run only (these compare idioms against each other, not Groovy over time). Throughput is ops/µs (higher is better); allocation is gc.alloc.rate.norm bytes/op (lower is better). Both use a log y-axis — per family the workload sizes span roughly two decades, so a linear axis would flatten the larger sizes into indistinguishable slivers; for allocation, bars at the 0 floor mean effectively zero allocation. Bars are grouped by workload size. Use the toggle to switch between indy and classic call sites. Per-run history (with regression alerting) lives under the per-bucket dashboards linked below.

Call site:
Loading…

find (short-circuit; full traversal here — no match)

Throughput (ops/µs, higher = better)

Allocation (bytes/op, lower = better)

findAll (full traversal; empty result list)

Throughput (ops/µs, higher = better)

Allocation (bytes/op, lower = better)

count (full-traversal reducer; builds no collection)

Throughput (ops/µs, higher = better)

Allocation (bytes/op, lower = better)

Per-bucket history & raw data: throughput/indy · throughput/classic · alloc/indy · alloc/classic (each <bucket>/data.js)
Generated by github-action-benchmark · Apache Groovy benchmark home