Skip to content

ci: Fix benchmarks - #591

Merged
samuelburnham merged 3 commits into
mainfrom
sb/bench-ci-fixes
Aug 24, 2026
Merged

ci: Fix benchmarks#591
samuelburnham merged 3 commits into
mainfrom
sb/bench-ci-fixes

Conversation

@samuelburnham

@samuelburnham samuelburnham commented Aug 24, 2026

Copy link
Copy Markdown
Member
  • Fixes a !benchmark comment caching issue caused by bencher API drift, now restores properly from main when fresh is not passed as an argument
  • Fixes the lean-update action to recursively update the Lean toolchain of all Benchmarks/** subdirs
  • Fixes the bencher plot titles for Aiur sharded env check

Bencher's reports LIST endpoint stopped inlining each report's
`results` (it now carries only a `counts` summary), which fetch-main
read as "report found, zero rows" — every !benchmark base fetch on
every backend then exited 3 and silently fell back to a FULL base-side
rerun (rebuild the base binaries + re-measure), ~5 min of redundant
work per entry despite the rows sitting on bencher.

Fetch each SHA-matched report by uuid (the single-report GET still
returns full results) before row parsing; an inlined results array is
still used directly if the API populates it again. Validated against
live bencher at main@7da4132: the aiur-sharded-env/ISLB fetch that
drove the fallback in run 32749751301 now returns its row (5 measures,
empty missing list, exit 0), and a compile fetch at the same SHA
exercises the multi-report-per-testbed aggregation.
The five new plots synced with the slug fallback ("aiur-sharded-env-
check: check-time"); name them in the house style — Aiur Env Check
Time / Throughput / Peak RAM Usage, Aiur Env Constants, Aiur Env
Shards. Verified via `ix bench plots --dry-run`.
`. Benchmarks/**` replaces the hand-listed ". Benchmarks/Compile":
the recursive form reaches all seven packages under Benchmarks/
(Catalog, CatalogReal, CatalogSpine, Compile, CompileFC, and Catalog's
nested RelocFixture workspaces) while skipping dotted directories, so
.lake dependency checkouts stay untouched. CompileFC was previously
left pinned to an old toolchain on purpose; it now updates with the
rest.
@samuelburnham

Copy link
Copy Markdown
Member Author

!benchmark ooc

@samuelburnham

Copy link
Copy Markdown
Member Author

!benchmark aiur-sharded-env

@argument-ci-bot

argument-ci-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 360c9d6

backends: ooc · envs: InitStd

ooc · InitStd — main from: bencher @ e47a1b7

8 env/constants · 4 with regressions · 1 with improvements (|Δ| > 3.0% on any metric).

comparison table (8 env/constants)
env/constant check-time (main) check-time (PR) Δ% throughput (const/s) (main) throughput (const/s) (PR) Δ% peak-ram (main) peak-ram (PR) Δ%
InitStd 7.252 s 8.004 s +10.4% (1.10× slower) ⚠️ 13.62K 12.34K -9.4% (1.10× slower) ⚠️ 2.33 GiB 2.31 GiB -0.8%
Array.extract_append 517.0 ms 517.3 ms +0.1% 3.12K 3.12K -0.1% 1.20 GiB 1.33 GiB +10.3% (1.10× larger) ⚠️
ByteArray.utf8DecodeChar?_utf8EncodeChar_append 279.4 ms 279.5 ms +0.0% 9.95K 9.95K -0.0% 1.28 GiB 1.47 GiB +14.7% (1.15× larger) ⚠️
Char.ofOrdinal_le_of_le 273.9 ms 274.3 ms +0.1% 10.13K 10.12K -0.1% 1.72 GiB 1.71 GiB -0.9%
Std.HashMap 266.7 ms 267.2 ms +0.2% 7.77K 7.76K -0.2% 1.95 GiB 1.87 GiB -4.0% 🟢
_private.Init.Data.Range.Polymorphic.SInt.0.Int64.instRxcHasSize_eq 264.8 ms 265.3 ms +0.2% 7.07K 7.06K -0.2% 1.42 GiB 1.44 GiB +0.9%
String.append 253.2 ms 253.3 ms +0.0% 1.30K 1.30K -0.0% 688.84 MiB 707.29 MiB +2.7%
Nat.add_comm 252.5 ms 252.3 ms -0.1% 182.160 182.330 +0.1% 503.75 MiB 526.25 MiB +4.5% ⚠️
per-constant drill-down — Σ check 204.47s → 221.51s (+8.3%), Σ cost +0.0%; 0 cost mover(s), 96 time-only mover(s)

Each entry is one constant's own check within the whole-env run (deps ingress lazily; each dep is checked in its own entry; entries sum to the env) — not the full-closure scope of the headline --consts measurements.

Time-only movers (cost flat — scheduling/locality noise)

constant main PR Δtime Δcost (Zisk) driver
BitVec.getLsbD_concat_zero 1.0ms 17ms +1679.1% (17.79× slower) ⚠️ +0.0%
List.reverse_perm._f 0.8ms 12ms +1406.7% (15.07× slower) ⚠️ +0.0%
Std.Sat.AIG.mkGate 1.6ms 15ms +858.1% (9.58× slower) ⚠️ +0.0%
BitVec.setWidth_neg_of_le 6.0ms 37ms +506.6% (6.07× slower) ⚠️ +0.0%
Std.DTreeMap.Internal.Impl.Const.insertMany_empty_list_singleton 4.5ms 19ms +315.7% (4.16× slower) ⚠️ +0.0%

Workflow logs

@argument-ci-bot

argument-ci-bot Bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

!benchmark — main vs 360c9d6

backends: aiur-sharded-env · envs: ISLB

aiur-sharded-env · ISLB — main from: bencher @ e47a1b7

1 constant · 0 with regressions · 1 with improvements (|Δ| > 3.0% on any metric).

constant check-time (main) check-time (PR) Δ% throughput (const/s) (main) throughput (const/s) (PR) Δ% peak-ram (main) peak-ram (PR) Δ% constants (main) constants (PR) Δ% shards (main) shards (PR) Δ%
ISLB 1m 39.2s 1m 33.7s -5.5% (1.06× faster) 🟢 1.85K 1.95K +5.8% (1.06× faster) 🟢 95.34 GiB 94.25 GiB -1.1% 183,062 183,062 +0.0% 151 151 +0.0%

Workflow logs

@samuelburnham
samuelburnham added this pull request to the merge queue Aug 24, 2026
Merged via the queue into main with commit 68a50d3 Aug 24, 2026
13 checks passed
@samuelburnham
samuelburnham deleted the sb/bench-ci-fixes branch August 24, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants