perf(ui-gpui): diagnostic counters confirm 2 renders/sec at window level (GPUI limit)

- Sidebar and StatusBar uncached (natural size collapsed with StyleRefinement::default)
- ProjectGrid cached with flex-1 style (into_cached_flex)
- AgentPane + TerminalView cached within ProjectBox
- BlinkState::start() fixed with &mut *cx deref coercion
- CPU: ~3% with full layout visible (down from 6.8% uncached)
- Remaining: ProjectBox re-renders full tree on blink (reads BlinkState)
- Next: isolate dot into StatusDotView entity to prevent ProjectBox re-render
This commit is contained in:
Hibryda 2026-03-19 22:45:21 +01:00
parent a25e024d54
commit 1f26e5b272
4 changed files with 34 additions and 28 deletions

View file

@ -60,9 +60,7 @@ impl Render for ProjectGrid {
.overflow_y_scroll();
for pb in &self.project_boxes {
// Cached: ProjectBox only re-renders when its entity is notified
// (e.g., PulsingDot blink). Sibling ProjectBoxes serve from GPU cache.
grid = grid.child(pb.clone().into_cached_view());
grid = grid.child(pb.clone());
}
if self.project_boxes.is_empty() {