Skip to content

Performance optimization & benchmark suite #78

Description

@kafkade

Tracks Phase 5.2 — Performance Optimization from docs/SPEC.md. This is the only Phase 5 feature from the spec without a tracking issue.

Goal

Production-grade performance with regression protection, meeting the non-functional requirements in SPEC §5.

Scope

  • Add a criterion benchmark suite (benches/) covering hot paths (collectors, ring buffer, rendering)
  • Efficient diff-based rendering — only redraw changed cells
  • Lazy collection — only collect data for visible panels
  • Wire benchmarks into CI for performance-regression detection

Targets (from SPEC §5 NFRs)

  • CPU overhead: < 1% at 1s refresh on modern hardware
  • Memory: < 30MB RSS typical, < 50MB with all features
  • Startup: < 200ms to first render
  • Binary size: < 15MB stripped (static Linux musl build)

Notes

  • No benches/ directory or criterion dev-dependency exists yet.
  • Lazy collection touches the collector → App → UI data flow; per SPEC §7, prefer tokio::sync::watch over Arc<RwLock<>> if channels are introduced.

Metadata

Metadata

Assignees

No one assigned

    Labels

    performancePerformance improvementphase-5Phase 5: Polish

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions