Repository navigation
perf(cmux-tui): bench interact, named budgets, record-only perf lane (IX0) - #11688
lawrencecchen wants to merge 5 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Warning Review limit reachedNext included review available in 5 minutes. View limit detailsLimit details: You’ve used all 10 included reviews currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Team Run ID: 📒 Files selected for processing (19)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
All contributors have signed the CLA ✍️ ✅ |
…ag budgets One module, cmux_tui_core::budgets, holds every bounded wait the daemon, terminal hosts, and clients enforce. The existing constant sites import these values instead of repeating the numbers, so there is exactly one value per budget. 'cmux diag budgets' prints the table locally with the stage each budget belongs to and the code site that enforces it. No value changes. IX0 of the zero-wait interaction plan.
…chmark cmux bench interact drives a session as an ordinary client over the raw control protocol and records the latencies an interactive frontend or an agent feels per user intent: create request to response, request to the tree delta that makes the resource visible on a separate deltas subscriber, attach to first render frame, close to response, and one-byte typing on both a separate connection and the create connection (so head-of-line blocking is visible). --clients N runs N concurrent create loops. With no socket or session it starts and stops a throwaway session. It sends only existing commands and adds no protocol command or resource operation. IX0 of the zero-wait interaction plan.
…ns doc A full-mode 'bench interact' job builds the server, runs the benchmark against a throwaway session on Linux and macOS runners, prints the table in the job log, and uploads the JSON as cmux-tui-bench-interact-<os>. It is deliberately not in hosted-verification's needs, so it is never a required check; it records the IX0 baseline, not a threshold. Adds docs/journal-operations.md describing the budgets verb and the bench metrics. IX0 of the zero-wait interaction plan.
b00bae9 to
738f47a
Compare
|
Closed as superseded by #11697. |
What this is
IX0 of the zero-wait interaction plan (hq
plans/cmux-tui-zero-wait-interaction.md): measure and name before changing behavior. Three commits, no runtime behavior change.cmux_tui_core::budgetsholds every bounded wait the daemon, terminal hosts, and clients enforce, one value per budget, with the interaction stage it belongs to (accept,durable,settle,frame,client,planned) and the code site. The existing constant sites import these values instead of repeating the numbers.cmux diag budgets [--json]prints the table locally, no session needed. No value changed.cmux bench interact. A client that drives a session over the raw control protocol and records the latencies a frontend or an agent feels per user intent. It sends only existing commands; it adds no protocol command or resource operation.bench interactjob runs the benchmark on Linux and macOS, prints the table, and uploads the JSON ascmux-tui-bench-interact-<os>. It is deliberately not inhosted-verification's needs, so it is never a required check. Plusdocs/journal-operations.md.What the bench measures
Per create (round-robin new-workspace / new-tab / split), all from one clock: request to response; request to the first
tree_events:"deltas"delta that references the new surface on a separate subscriber (deltas may precede the response, so both time from the write);attach-surfaceto firstrender-state; view-only close and process-terminating close to response. Typing: one-bytesendon a separate connection and on the create connection, so head-of-line blocking is visible.--clients Nruns N concurrent create loops.Baseline (Linux testbox, 32 vCPU, throwaway session; ms)
The convoy the plan predicts is already visible: at 8 concurrent create loops, create response p50 rises 8x and p99 to ~2.1 s, because every create serializes behind the daemon-wide creation fences, while typing to an existing terminal stays flat.
macOS arm64 baseline (from the full-run binary) is added below once the full hosted run finishes.
Verification
--filter budgets) and full hosted: URLs below.cmux-tui-coreandcmux-tuion the testbox.diag budgetsJSON round-trip, bench percentile and delta-matching.Design: hq
plans/cmux-tui-zero-wait-interaction.md(IX0).Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Adds IX0 of the zero-wait interaction plan: names every bounded wait as a budget and adds an interaction-latency benchmark with a record-only CI lane. No runtime behavior changes.
New Features
cmux_tui_core::budgetsis the single source for every bounded wait;cmux diag budgets [--json]prints it with stage and code site.cmux bench interactdrives a session as a client, sending only existing commands, and records create, visibility, first-frame, close, and typing latencies.cmux-tui-bench-interact-<os>, and is never required;docs/journal-operations.mddocuments both.Verification
Written for commit 738f47a. Summary will update on new commits.