bench(list): consolidate synthetic wt list benches into one full group - #3335
Merged
Conversation
…group Fold the worktrees-only `full` (a duplicate of `worktree_scaling`) and the branches-only `many_branches` into a single `full` group that runs one combined fixture: many worktrees AND many branches in varied clean/dirty/staged and merged/ahead/diverged states, with branch divergence spread across history depth (the GH #461 cost driver). Cold + warm. Extend `create_mixed_repo` with that deep-divergence shape: deeper base history (120 -> 200 commits), finer checkpoints, behind/diverged branches forking across the full depth, and multi-commit diverged chains. Signature unchanged, so `wt-perf setup mixed-W-B` keeps working. For attribution, rely on the `wt-perf timeline` `args.context` trace query: a `full` wall time can't be split by side because the git subprocesses overlap on the rayon pool. `worktree_scaling` and `divergent_branches` stay as the per-side trackers (and the `rayon_thread_count` tuning anchors). `run_benchmark` now takes `cold_cache: bool` instead of `&BenchConfig`. Drop the stale `timeout_effect` doc reference. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
worktrunk-bot
approved these changes
Jun 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates the narrow synthetic
wt listbenchmarks into a singlefullgroup backed by one combined fixture, so one bench exercises the whole surface (many worktrees AND many branches in varied states) instead of several groups that each covered worktrees-only or branches-only in a uniform state.What changed
fullgroup (benches/list.rs) runscreate_mixed_repo(24, 120)cold + warm: 24 worktrees and 120 branches in mixed clean/dirty/staged working trees and merged/ahead/diverged branch states, with branch divergence spread across history depth (the GH wt select takes 15s #461 cost driver).full/warm≈ 147ms,full/cold≈ 480ms locally.full(worktrees-only — a duplicate ofworktree_scalingdespite the name),many_branches(100 uniform branches), and the warm-onlyrerun_warmseed. No coverage dropped:worktree_scalingkeeps the worktree-count scaling sweep, and the combined fixture's branch side subsumesmany_branches.divergent_branches(the pure wt select takes 15s #461 deep-divergence stress) andworktree_scaling— both are cited insrc/main.rsas therayon_thread_counttuning anchors, and together they are the per-side regression trackers.create_mixed_repointests/helpers/wt-perf): added the deep-divergence shape it lacked — deeper base history (120 → 200 commits), checkpoints every 5, behind/diverged branches forking at points fanned across the full depth, and multi-commit diverged chains. Signature unchanged, sowt-perf setup mixed-W-Bstill works.fullwall time can't be decomposed by side (worktree- and branch-side git subprocesses overlap on the rayon pool), sobenches/CLAUDE.mddocuments thewt-perf timelineargs.contexttrace query (query Re-enable shell wrapper tests with correct fish snapshots #3) as the way to localize a regression.run_benchmarknow takescold_cache: boolinstead of&BenchConfig, decoupling it from the fixture type. Removed a staletimeout_effectdoc reference (no such group exists).Benchmark-only change (plus the
wt-perftest helper andbenches/CLAUDE.md); no production code. All sixlistgroups compile and run; clippy-Dwarnings, fmt, and thewt-perftests are clean.