父任务
#467 macOS 交互帧预算:声明式 UI 热路径与可调节表面
依赖
- 依赖 perf-0、perf-D1。
- 只有在 perf-T1/T2 后基线仍证明 Git 图是瓶颈时进入实施。
不变量
Git 图滚动或无关 AppModel 状态变化时,只重绘可见且发生变化的区域;不能让整棵提交图的 SwiftUI Canvas 行重复构建。
当前基线
当前已有 LazyVStack、行级 Equatable 和每行 Canvas。此 Issue 不重复做这些已完成的局部优化,而是评估更稳定的单视图绘制/脏矩形方案。
范围
- 使用已提交的 Git 图 fixture 和性能基线比较 1,000 / 5,000 commits。
- 根据 Instruments 数据决定继续优化 SwiftUI,或改成单个保留式 AppKit 绘制视图。
- 保留节点、合并线、分支颜色、选中态、滚动和无效 parent 提示。
明确不改
- 不改 Git graph layout 算法的协议语义。
- 不将所有 Git 工具窗统一改成 AppKit。
- 没有数据证明前不启动 GPU/视口编辑器重写。
验收
父任务
#467 macOS 交互帧预算:声明式 UI 热路径与可调节表面
依赖
不变量
Git 图滚动或无关 AppModel 状态变化时,只重绘可见且发生变化的区域;不能让整棵提交图的 SwiftUI Canvas 行重复构建。
当前基线
当前已有 LazyVStack、行级
Equatable和每行 Canvas。此 Issue 不重复做这些已完成的局部优化,而是评估更稳定的单视图绘制/脏矩形方案。范围
明确不改
验收