#69

Benchmark: resource efficiency (CPU, RAM, GPU) of Wraith vs other web terminals

Openbettercleveropened 3d ago

Measure the CPU, memory and GPU time a web terminal itself costs in Chrome, for Wraith and the other web terminals, across a range of workloads, as a delta over the same page with no terminal mounted.

Renderers

Wraith native (Wraith.mount), Wraith xterm-compatible profile, Wraith pool (per-canvas) and Fleet (shared surface) for multi-terminal cases, xterm.js 6 + WebGL, xterm.js 6 DOM, restty 0.3.0, @zem-sh/terminal 0.1.2, ghostty-web 0.4.0, wterm (DOM, built-in core) and wterm + Ghostty core 0.5.6.

Workloads

Idle with blinking cursor (30 s); idle after 10k and after 100k lines of scrollback; typing echo ~10 keys/s; log stream ~200 lines/s; max-throughput 20 MB colored log; full-screen truecolor redraw every frame (160×50); Unicode/CJK/emoji text; 16 and 64 terminals streaming logs. 160×50 at 13 px, DPR 2 for single-terminal cases.

Acceptance criteria

  • demo/efficiency.html + demo/efficiency-bench.js harness page; every renderer and the none baseline load the same page, fonts and generated data.
  • scripts/efficiency-benchmark.mjs runs each renderer × workload in a fresh headed Chrome, 3 rounds, renderer order interleaved per round; resumable.
  • CPU per Chrome process type (browser, renderer incl. workers, GPU, utility) from CDP SystemInfo.getProcessInfo CPU-time deltas.
  • Memory per process: macOS phys_footprint (footprint), its graphics share, and RSS; main-thread JS heap.
  • GPU time per process from AGXDeviceUserClient accumulatedGPUTime deltas.
  • Every number reported as a delta over the no-terminal baseline; fixed-work results as CPU-ms per MB and time to finish; paced results as CPU-ms/s and per 1,000 updates.
  • Machine state per run (load average, power source); runs wait for the Fleet benchmark and for load < 6 (bounded wait, recorded).
  • Correctness check per run: end marker read back where the renderer exposes text, retained scrollback lines, screenshot.
  • docs/benchmarks/efficiency/REPORT.md with per-workload tables, an efficiency summary (CPU per MB, RAM per terminal, RAM per 10k lines), caveats (shared GPU process, device-wide GPU, load), and raw results.json with build hash, Chrome and package versions.

Activity

0

No activity yet.