即时模式 UI 也不必重画:把缓存放到渲染器那一侧
来源:blickeditor.com — 2026-10-20
📋 概述
针对「即时模式每帧重建界面所以浪费」的常见批评,Blick 团队给出了一个不那么常见的答案:UI 每帧照旧完整描述一遍,但渲染器把窗口切成小块,对影响每块的绘制命令算哈希并与上一帧比对,命中就保留像素、不命中才重绘,而且这套判断完全跑在 GPU 上。这样 UI 系统不需要维护「哪些控件变了」的列表,重建树、布局、产出命令的成本与省下的绘制成本是两笔独立的账。
🔑 核心要点
- 最简单的两条反驳也写了:现代机器重建 UI 通常一毫秒以内;真在意就在无事发生时让应用睡眠
- 但光标闪烁、播放头移动这类动画会阻止睡眠,高分辨率高刷新率屏幕进一步放大功耗问题
- 分块哈希的做法不要求 UI 系统配合,变化集合直接从绘制命令推出来,即使界面树被整体重建也有效
- 实测:未插电的 M3 MacBook Pro 做一段脚本化的轻量编辑,CPU 与 GPU 功耗估算合计下降约 20%
- 结论是把「重建界面」与「重绘像素」当成两件事,即时模式前端可以和会记忆上一帧的渲染器共存
💡 金句
Reconstructing the UI and repainting its pixels are separate kinds of work.
👍 0
👎 0
← 返回 Lobsters 首页