Repository navigation
Benchmark progress: socket-patch scan #575
Replies: 11 comments
|
[agent] Bench: mirror test. The bench/ledger workflow posted this comment. Daily runs add their summaries after it. Generated by Claude Code |
|
[agent] Bench: run 2026-10-03, main
Generated by Claude Code |
|
[agent] Janitor: state drift. The body still lists #579 as an open regression ( Generated by Claude Code |
|
[agent] Bench: run 2026-10-04, main
Generated by Claude Code |
|
[agent] Bench: run 2026-10-05, main
Generated by Claude Code |
|
[agent] Bench: run 2026-10-06, main
Generated by Claude Code |
|
[agent] Bench: run 2026-10-07, main
Generated by Claude Code |
|
[agent] Janitor: drift. The body still lists #760 (poetry) and #762 (pdm) as slow, with "Draft fix in #877". #877 merged on 2026-10-07 ( Generated by Claude Code |
|
[agent] Bench: run 2026-10-08, main
Generated by Claude Code |
|
[agent] Bench: run 2026-10-09, main
Generated by Claude Code |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
[agent] Bench: progress log for the
socket-patch scanbenchmark suite (crates/socket-patch-bench,.github/workflows/bench.yml). The daily benchmark steward rewrites this body on every run and posts one comment per run. Machine-readable history is inhistory.jsonon thebench/ledgerbranch. The first run (2026-10-02) was logged in #580 and backfilled there.Last run
f3c6313a(Fix open npm issues, Fix open npm issues #1008). That is 37 first-parent commits sinceea097142, including Stop re-parsing bun lock entries for every patch in scan (#580) #1051 (bun lock re-parse fix), Fix open npm issues #1008 (npm/bun/vlt lock rework), Scope project-mode NuGet crawls to the restore's resolved packages (#427) #1183 (NuGet restore-scoped crawl), Scope the project-mode cargo crawl to the crates Cargo.lock resolves (#1204) #1205 (Cargo.lock-scoped crawl), Decide whether a hosted patch is pinned through lockfile discovery alone #1058 (hosted pins decided through lockfile discovery) and Remove scan --apply/--vendor, get --no-apply and the download/gc aliases (#966) #1031 (removesscan --apply/--vendor; the suite never used them).main, 45 scenarios. Bench: benchmark NuGet as a restored project (#1183 scoped crawl) #1250 updates the nuget fixture; it was measured separately and is not in today's numbers.compare. The 3arunwas noisy today (pnpm/hosted ranged 224–396 ms; npm/hosted's 515 ms median is about 330 ms in everycompare), so treat today's absolute medians loosely.ea097142→f3c6313a):ea097142..ef48495c(13 commits; Stop re-parsing bun lock entries for every patch in scan (#580) #1051, Make every --json top-level error a {code, message} object (#704) #1027 and Fix vendored revert reading a removed dependency as drift (#1132, #1140, #1142) #1147 are candidates) and half is Decide whether a hosted patch is pinned through lockfile discovery alone #1058 (4d06019b). This is under the 30% RSS issue gate, so it's ledger only.61cfb9b2, which predates Fix Bun/vlt bundled copies left unpatched (#469, #471) #472, →f3c6313a). The base fails validation on yarn-berry, bun-isolated and gradle (it predates those fixtures), so those have no weekly ratio.comparewall time: 21.7 min for the daily run (45 scenarios plus 4 confirmation rounds) on this runner. That is still over the ~12-minute budget.Scoreboard
Day: wall ratio vs
ea097142. Week: wall ratio vs61cfb9b2. The median ms/pkg across*/hostedis 0.1716 today (from the noisy 3a run).npm/hostednpm/rescanpnpm/hostedpnpm/rescanyarn-classic/hostedyarn-classic/rescanyarn-berry/hostedyarn-berry/rescanbun/hostedbun/rescanbun-isolated/hostedbun-isolated/rescanvlt/hostedvlt/rescanpip/hostedpip/rescanuv/hosteduv/rescanpylock/hostedpylock/rescanpoetry/hostedpoetry/rescanpipenv/hostedpipenv/rescanpdm/hostedpdm/rescanhatch/hostedhatch/rescanbundler/hostedbundler/rescancomposer/hostedcomposer/rescancargo/hostedcargo/rescangolang/hostedgolang/rescannuget/hostednuget/rescanmaven/hostedmaven/rescangradle/hostedgradle/rescannpm/dry-runnpm/public-proxynpm/latencyTrends
Median
<pm>/hostedwall time per run, oldest → newest (ms). Runners differ between runs (10-05, 10-07 and 10-09 ran on slower or noisier sandboxes), so read these as trends only. The poetry and pdm drop on 10-08 is #877. The bun drop on 10-09 is #1051. The 10-09 npm value is a noisy outlier.Open issues and PR
redirect::pipenv::entries, 61%.bench/refresh): the nuget fixture getsobj/project.assets.json, so the suite times Scope project-mode NuGet crawls to the restore's resolved packages (#427) #1183's restore-scoped crawl.Standing slow-systems list
A package manager is slow when its hosted ms/pkg is more than 2x the median across
*/hosted, or when any of its scenarios takes over 500 ms (npm/latencyis excluded). An issue opens after 3 consecutive runs, capped at 3 new issues per run. Today's 3a run was noisy, so the same ranking was cross-checked against the dailycomparehead samples (median 0.143 ms/pkg). Both put the same 7 package managers over 2x.PythonLockSession::rewrite39%: the whole lock is re-serialized per patched dep (callgrind 10-05)formats::cargo::CargoLock::parseinsiderewrite_cargo, 79% (callgrind 10-04). #1205 scoped the crawl but not the rewritepatch::redirect::pipenv::entries61% inclusive (properties40%):plan()re-tokenizes Pipfile.lock once per patch (callgrind 10-09)lock_fragments::rewrite_batch45%, vexpypi_locks::extract26% (callgrind 10-08)If poetry and pdm are still over 2x tomorrow, that's their 3rd run since #877 and each gets an issue. No scenario's peak RSS is above 2x the median (34.2 MiB). Scenarios over 500 ms: vlt/hosted and vlt/rescan (npm/hosted's 515 ms in the 3a run is noise; it was about 330 ms in every
compare).Coverage-gap backlog
New since 10-08 (from
ea097142..f3c6313a):Cargo.lockand novendor/, so it takes the new lookup. Uncovered: extra crates in~/.cargo/registrythat the lock doesn't name (the scope's whole point), which would need a fixture change that the base can't validate.Carried over:
[tool.hatch.envs]in pyproject only, hatch +requirements.txt, uv-installer refusal.verification-metadata.xml,mavenLocal()(Full Gradle support in agent, hosted and vendored modes #646).__archiveUrlpins (Fix yarn berry hosted pin leaking npm auth (#404) #465).redirect_*_bundled_instance_skipped, Fix Bun/vlt bundled copies left unpatched (#469, #471) #472/Fix in-run hosted VEX attesting npm bundled copies (#325) #669).UV_PROJECT_ENVIRONMENT/ PDM venvs (Fix Python env discovery ignoring uv/PDM env (#502, #525, #528) #540),.egg-info(Fix Python crawler missing .egg-info installs (#447) #452), Poetryenvs.toml(Fix Poetry venv selection ignoring envs.toml (#476, #526) #527), lock-onlyrequirements.txt(Fix lock-only requirements.txt discovery (#412, #523) #530)..bundle/config(Fix Bundler settings resolution order (#483, #507) #532, Gem settings resolution skips Bundler's global config (~/.bundle/config/BUNDLE_USER_CONFIG), so a globalcache_pathorgemfilegets no warning or refusal and VEX attests an unpatched install #577),gems.locked(Fix gem lock readers ignoring gems.locked (#736) #750), Bundler 4 standalone (Fix gem crawler missing Bundler 4 standalone bundle (#796) #797).comparetakes 16–22 min on a 4 vCPU sandbox. Before more scenarios land, shrink something, e.g. fewer--runsfor the npm family's*/rescantwins, or mergebun/rescanintobun-isolated/rescan.Stale / redundant scenarios
None removed. #1031 removed
scan --apply/--vendor, and no scenario used them. Merging hosted/rescan pairs needs 14+ days of history; there are 8 days so far. Candidate:bun/rescanoverlapsbun-isolated/rescanon the lockfile path. Both moved together today (-62% / -56%).Generated by Claude Code
All reactions