Geomean speedup across versions and platforms, with a per-benchmark snapshot below.
Geometric mean of baseline_median / median, higher = faster. Dashed segments are emulator data, solid are BeamAsm JIT.
Per-platform lines use emu data pre-Erlang/OTP 24 (BeamAsm JIT was added in 24) and JIT from 24 onwards, anchored at each platform's own earliest recorded run for every benchmark. The thicker all platforms line groups by Erlang/OTP function-release (e.g. 23.3) so a coarser-grained Windows build (OTP-23.3 installer) merges with a finer-grained linux/macos build (OTP-23.3.4.20 patch tip), and includes any bucket where at least one platform contributed.
Both Erlang and Elixir benchmark cells contribute to the geomean. Each Erlang/OTP major is paired with a specific Elixir version in the matrix (e.g. Erlang/OTP 25 → Elixir 1.17.3, Erlang/OTP 28 → Elixir 1.19.5), so Elixir's own compiler / stdlib evolution rides along in the numbers — it's not a pure Erlang/OTP runtime signal.
Speedup (×) over the earliest recorded run for each (lang × machine_class × benchmark) baseline, evaluated at each major's latest patch. Bars above 1× are faster than baseline. Whiskers show ± 2σ. Bars with diagonal stripes and an "(emu)" legend suffix are emulator measurements shown in place of JIT, because that platform's BeamAsm JIT wasn't yet available at that version.