Lobsters | 📄 原文链接 | 2026-11-10 收录

对 GPUI 的批评:notify 就是 zone.js,精确化会摧毁它

来源:blog.zortax.de — 2026-11-05

📋 概述

作者把 Rust 桌面 GUI 框架的状态模型分成五类,并用一个问题筛选它们:当一个值变化时,什么会重跑。GPUI 属于「视图级重跑 + 手写 notify」,egui 是立即模式(整帧重跑),Iced 是 Elm 架构(重跑整个 view 再 diff)。他以 GPUI 为例做了基准:3000 行 live rows、每行一个 cached view,改一个标签要 8.4 ms,且开销随树规模线性增长(每 1000 行约 3 ms);把 rows 写成普通元素则是 92 ms。手写相等性检查能把「写入相同值」从 7.9 ms 降到 0.9 µs——恰好说明这份工作被留给了每个调用点。

🔑 核心要点

💡 金句

保留讨喜的 API,你得到的就是视图级的更新;要精度,你就失去那套讨喜的 API。
← 返回 Lobsters 首页