termy
← all releases

Termy v0.2.18

Performance and resource usage

Termy v0.2.18 is a focused performance prerelease that reduces CPU work, retained memory, render-cache overhead, and redundant engine wakeups.

Rendering and memory

  • Replaced inline shaped-line cache values with pointer-sized shared handles. Empty cache slots shrink from 2,984 bytes to 8 bytes while preserving row-cache reuse.
  • Release render-cache allocations for inactive tabs, hidden workspaces, and zoom snapshots so background terminals do not retain unnecessary shaped lines, draw operations, and color-cache capacity.
  • Avoid render timing instrumentation unless performance metrics are enabled.
  • Lazily initialize process metrics and clipboard reads so hidden diagnostics and unrelated terminal events do not pay for them.

CPU and engine work

  • Coalesce repeated PTY wakeups into one host signal until the queued event is drained, while preserving correct wakeups across hidden and visible transitions.
  • Transfer owned keyboard, paste, and mouse buffers directly into the native PTY path instead of copying them again.
  • Keep native terminal wakeup interest synchronized when switching tabs and workspaces.
  • Use GPUI's platform application entry point and remove the previous macOS thermal-observer workaround.

Performance diagnostics

  • Clarified that callback intervals measure idle/activity cadence, not frame latency. A roughly 500 ms callback interval can be healthy while the terminal is idle.
  • Added separate CPU-side view-build p50/p95/p99 measurements.
  • Relabeled memory reporting as process RSS so it is not confused with total GPU memory.
  • Tightened benchmark reporting for idle wakeups, cursor blinking, callback cadence, and displayed frames.

Measured results

Controlled local before/after benchmarks showed:

  • 7.3% lower physical memory in a dense block-grid workload.
  • 29.5% lower resident malloc memory in that workload.
  • About 5.8% lower CPU usage during steady scrolling.
  • About 6.2 MiB lower peak process memory during steady scrolling.
  • Effectively unchanged frame throughput.
  • Three repeated wakeup events collapse to one host wake signal until drained.

Validation

  • Full workspace test suite passed across all targets.
  • Strict workspace Clippy passed with warnings denied.
  • Release build and Intel macOS target checks passed.
  • Dependency policy, generated documentation, repository boundaries, formatting, and diff checks passed.
  • Both termy and termy_cli resolve and compile as version 0.2.18.