summaryrefslogtreecommitdiff
path: root/src/syntax.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-30 14:25:52 -0300
committerGabriel Schneider <[email protected]>2026-10-01 00:12:17 -0300
commit1d0f8cd158bb47941c0187d32422787c92e8feeb (patch)
treeb7f6806cc431c5e2339cdd4887405275a6f2c635 /src/syntax.zig
parent69c5e62fe45a3768edff14993789f2aadfafadec (diff)
downloadpardes-1d0f8cd158bb47941c0187d32422787c92e8feeb.tar.gz
pardes-1d0f8cd158bb47941c0187d32422787c92e8feeb.zip
A detached session no client watches draws no frames: yes | head -c 50M through pty/run goes from over 30 s to 11 s
Profiling the 50 MB run showed 70% of its time in draw.render, recolorAnsi alone 43%, walking cells through PageList.pin. The detached session drew a frame after every pty read, with no client attached to see it. A host now says whether anyone watches (Host.VTable.watched). The detached server answers whether a client is attached, and while none is the core keeps the frame owed instead of drawing it. A /screen read draws its own, and a client attaching gets one (hello sets needs_frame). Debug, 80x24: 10 MB went from 7.36 s to 2.10 s, and 50 MB from over the 30 s client timeout (about 37 s by rate) to 11.08 s. What is left is the terminal's own parsing and scrollback growth. A session a frontend shows still draws after every read. Pacing those frames is the next step if that case matters. Co-Authored-By: Claude Opus 5.5 <[email protected]>
Diffstat (limited to 'src/syntax.zig')
0 files changed, 0 insertions, 0 deletions