BreezeDocs ← Back to site

Efficiency Rules

These are the non-negotiable rules every change to Breeze has to follow. They're the reason the app stays small and the battery lasts.

Zero-allocation hot path

  • No heap allocation in any code that runs at polling frequency.
  • Pooled / reusable buffers for system calls; ring buffers instead of growable arrays for history.
  • No allocating iterator chains in hot paths — plain loops with early returns.

Adaptive resource usage

  • Poll less when idle; background tabs stop their monitor entirely.
  • UI updates are event-driven, never on a clock.
  • Never run a timer when nothing needs it.

Stay out of the kernel's way

  • Process info comes from a direct per-OS backend (libproc on macOS) — never by shelling out to ps or top.
  • Validate a PID's process name before sending it any signal.

What never ships

  • No GPU rendering.
  • No animations, transitions, or visual effects.
  • No telemetry, analytics, or ads — the only network call is an update check on launch you can decline.
  • Great defaults out of the box; configuration is opt-in — parsed once at launch, so it adds zero idle cost.
A feature that can't justify its CPU cost with a measurable user benefit doesn't belong in Breeze.