bench: follow up the 9d1d842f cross-terminal run #405

Open
opened 2026-09-25 01:35:05 +09:00 by natsukium · 0 comments
Owner

Follow-up on the felis 9d1d842f cross-terminal run (docs/reference/benchmarks.md). Each child states its figures, suspects, and done condition.

  • #398 bench: CPU split between client and daemon disagrees with #397 (harness right; #397 ran with the display off)
  • #407 (PR #415) client: a window that cannot present keeps pulling frames unpaced
  • #408 bench: macOS warm startup leg kills its daemon; legs ignore display sleep (leftover cleanup: #426, PR #433)
  • #399 (PR #421: Linux reader parks in poll(2) without spinning; follow-ups #416, #417) daemon: CPU time under sustained output
  • #400 (coalescing reads rejected: the producer's write path slows when output sits unread; see comment) daemon: Linux vtebench scrolling rows. The quiet run at 5f5e4957 still trails foot by 25-33 ms on the five non-fullscreen scrolling rows (round-to-round spread is down to 3-15%); profiling the region-scroll path
  • #401 grid: plain-text parse throughput (PR #410; follow-ups #409, #412)
  • #402 (PR #420) client: startup
  • #403 client: Linux keystroke latency (via #422: PRs #424, #431)
  • #404 shaping: cell size against kitty's (PR #411)

Follow-ups found along the way:

  • #409 grid: skip the ISO-protection resolve (PR #418)
  • #412 grid: ZWJ survives a C0 control (PR #414); a CSI cursor move still leaves it armed (not filed)
  • #416 grid: SGR pen re-interning (PR #429)
  • #417 vt: CSI parameter parsing (PR #425)
  • #419 grid: table-GC sweep leaves the pen on the wrong style (PR #423)
  • #422 render: repaint only changed rows (PRs #424, #431; scroll row rotation waits on #447)
  • #447 (PR #455) grid: a scroll over a dirty region, and DL/IL, ship rows instead of a Scrolled directive
  • #406 (PR #450; placed-slot bound #451, PR #459) render: blank glyphs grow the glyph slot map and shape cache without bound
  • Re-run the full cross-terminal suite on a quiet host once #447 and #406 land, and republish docs/reference/benchmarks.md (PR #456, run at 5f5e4957 with the CI runner stopped)
  • #454 grid: a cursor-only move still marks its row (pagers would drop from 3 to 2 rows per cycle)

Not filed: macOS peak footprint while drawing (addressed by #396) and termbench many_lines/sgr on Linux (5-15% behind foot; re-check in the next full cross-terminal run).

Measurements here need a quiet host: it is also the CI runner, so record the load average with every figure.

Follow-up on the felis `9d1d842f` cross-terminal run (`docs/reference/benchmarks.md`). Each child states its figures, suspects, and done condition. - [x] #398 bench: CPU split between client and daemon disagrees with #397 (harness right; #397 ran with the display off) - [x] #407 (PR #415) client: a window that cannot present keeps pulling frames unpaced - [x] #408 bench: macOS warm startup leg kills its daemon; legs ignore display sleep (leftover cleanup: #426, PR #433) - [x] #399 (PR #421: Linux reader parks in poll(2) without spinning; follow-ups #416, #417) daemon: CPU time under sustained output - [ ] #400 (coalescing reads rejected: the producer's write path slows when output sits unread; see comment) daemon: Linux vtebench scrolling rows. The quiet run at 5f5e4957 still trails foot by 25-33 ms on the five non-fullscreen scrolling rows (round-to-round spread is down to 3-15%); profiling the region-scroll path - [x] #401 grid: plain-text parse throughput (PR #410; follow-ups #409, #412) - [x] #402 (PR #420) client: startup - [x] #403 client: Linux keystroke latency (via #422: PRs #424, #431) - [x] #404 shaping: cell size against kitty's (PR #411) Follow-ups found along the way: - [x] #409 grid: skip the ISO-protection resolve (PR #418) - [x] #412 grid: ZWJ survives a C0 control (PR #414); a CSI cursor move still leaves it armed (not filed) - [x] #416 grid: SGR pen re-interning (PR #429) - [x] #417 vt: CSI parameter parsing (PR #425) - [x] #419 grid: table-GC sweep leaves the pen on the wrong style (PR #423) - [x] #422 render: repaint only changed rows (PRs #424, #431; scroll row rotation waits on #447) - [x] #447 (PR #455) grid: a scroll over a dirty region, and DL/IL, ship rows instead of a Scrolled directive - [x] #406 (PR #450; placed-slot bound #451, PR #459) render: blank glyphs grow the glyph slot map and shape cache without bound - [x] Re-run the full cross-terminal suite on a quiet host once #447 and #406 land, and republish `docs/reference/benchmarks.md` (PR #456, run at 5f5e4957 with the CI runner stopped) - [ ] #454 grid: a cursor-only move still marks its row (pagers would drop from 3 to 2 rows per cycle) Not filed: macOS peak footprint while drawing (addressed by #396) and termbench many_lines/sgr on Linux (5-15% behind foot; re-check in the next full cross-terminal run). Measurements here need a quiet host: it is also the CI runner, so record the load average with every figure.
Commenting is not possible because the repository is archived.
No description provided.