From 6d5179fa1177b7f4e27cfa3b4b7b9e16f5e12ea9 Mon Sep 17 00:00:00 2001 From: Julien Calixte Date: Tue, 14 Jul 2026 09:55:25 +0200 Subject: [PATCH] =?UTF-8?q?docs(v0.7):=20record=20the=20warm=20:gp=20measu?= =?UTF-8?q?rement=20=E2=80=94=2019.1s,=20mix=20inverted?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Push leg fell to 5.9s (session-resumed TLS + repacked pack); the splice grew to 10.3s because a depth-4 path means ~5 loose tree writes, each paying the FAT dir-scan cost, plus the session's first 1.7MB .idx map. The publish-gap residual is now splice depth x loose-write cost. --- docs/v0.7-search-and-git.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docs/v0.7-search-and-git.md b/docs/v0.7-search-and-git.md index 6459ac3..c5718cb 100644 --- a/docs/v0.7-search-and-git.md +++ b/docs/v0.7-search-and-git.md @@ -113,7 +113,19 @@ Sync performance — inherited from the session resumption (above) attacks the negotiation half; re-measure a warm `:sync` before hunting further. Run-3 data point: a rejected-push `:sync` (worst case, three connections) totalled 24.0 s vs 59 s in - run 1; a clean warm publish is still unmeasured. + run 1. **Warm clean publish measured 2026-07-14 (run 4, as `:gp` after + the rename): 19.1 s** — but the mix shifted entirely. The push leg + collapsed to **5.9 s** (6 objects; TLS-resumed connect 2.4 s vs 4.0 s + for the session's first; post-repack marking cost invisible), and the + splice grew to **10.3 s** because the committed file sat four + directories deep: O(depth) means ~5 loose tree writes instead of 1 + (× the ~0.4 s dir-scan cost above) plus the session's first pack touch + (5 mmaps / 1808 KB — the 1740 KB .idx map dominates). Same run: + up-to-date `:gl` is now **4.7 s** git-side via the ls-refs fast path + ("no fetch" — was 9.7 s in run 1). So the residual curve is now + **splice depth × loose-write cost**, which is the same FAT-dir-scan + story as above and shares its levers (pack-not-loose foremost) — a + future perf pass; a root-level file's warm `:gp` should sit ≈ 12–13 s. - [x] Instrument the residual ~360 ms/loose-write — **measured 2026-07-14, CONVICTED: FAT linear directory scans** (full analysis in the [tradeoff doc](tradeoff-curves/sync-commit-staging.md), run 6).