Skip to content

perf: establish release-mode workload, allocation and idle-resource baselines #414

Description

@subinium

Priority: P2
Evidence: Existing debug measurements only; release qualification work
Baseline: v0.23.0 source 37933f9, audited 2026-09-05. Native execution/compile probes used Rust 1.98.0 on aarch64 macOS unless explicitly stated otherwise.

Problem and Reproduction

The audit reproduced fixed frame allocations and quadratic scroll discovery, but most remaining speed/RSS claims are not measured. Existing checks cover many features and OSes; they do not establish the effect of future optimizations across realistic TUI workloads.

benches/benchmarks.rs:1 · tests/v020_perf_alloc.rs:94 · .github/workflows/ci.yml:185

Scope

  • Add repeatable release baselines for idle, typing/paste, large filtered collections, resize, static logs, charts and image updates.
  • Record toolchain, feature set, host, geometry, data size, warm-up and sample method.
  • Distinguish CPU/kernel/flush/wall time, allocator calls/requested bytes and retained/peak memory.

Expected Effect

Choose optimizations by demonstrated user-visible cost and prevent unsupported performance claims.

Acceptance Criteria

  • Report p50/p95 frame/input latency, idle CPU, allocations/bytes per frame, output bytes and peak/retained bytes.
  • Use80x24,120x40,240x80 plus repeated resize; fixed deterministic data fixtures.
  • Do not promote debug closure timings to release full-frame throughput.
  • Gate deterministic allocation/correctness regressions; avoid flaky shared-runner nanosecond thresholds.
  • Run current patched stable and MSRV1.88 where supported; keep the declared MSRV unless an explicit compatibility decision changes it.
  • Follow the repository quality gates and the evidence rules in tracking: post-v0.23 correctness, resource efficiency and WASM completion #366; record actual results rather than treating a proposed test as passed.

Boundaries and Dependencies

Current CI already covers Linux/macOS/Windows and real multiplexers. This adds targeted measurements and semantic assertions, not a replacement CI framework.

No blocking implementation dependency identified; coordinate shared code with the tracker.

Tracking: #366. This issue records unresolved work, not an implemented fix.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:libsrc/lib.rs entry pointsenhancementNew feature or requestseverity:warningPerf or code smell; should fixtype:testTest infrastructure or coverage

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions