宝玉xp
26-10-21 03:20 微博认证:前微软Asp.Net最有价值专家 2025微博年度新知博主 科技博主

我说一下我在上一个版本 baocut 用 GPUI 踩的坑。

GPUI 挺好的,性能好,跨平台,AI 友好,但也有坑:
1. UI 复杂一点的话大概率你要 fork 一份改一下,有些功能原生支持不了,但也不是大问题

2. Accessibility 支持不太好,要支持一些键盘操作会比较麻烦(也可能我用法不对)

3. Rust 编译资源消耗很大
每次编译,无论是 CPU 占用还是磁盘占用,都巨大,对于我这样用 Mac Mini M4 16G + 1T 硬盘的来说简直太痛苦了,不敢并行多开编译任务,磁盘空间永远不够用(后来我把编译结果默认放到移动硬盘缓解了一点)

4. 编译时间很长,不支持热更新。
这点很要命,这意味着你如果改一点 UI 代码,要重新编译,然后要等少则几分钟多则十几分钟,这时间无论对于 agent 还是对于人来说都是很大的时间成本,加上不能随便多任务,会拖慢你的开发速度

5. agent 验证 UI 不算太友好
codex、claude code 都可以借助 computer use 去验证 GPUI 的结果,但一个是慢,另一个相对成本也不低。

---

后来我之所以换回 Electron,就是因为 Electron App 对于 Agent 相对友好,编译快、热更新,UI 改动很快看到效果,然后 Electron App 还能跑到 agent 内置的浏览器中,agent 验证起来很快,都不需要用 computer use 去打开 electron app。

至于网页渲染性能不够好的问题,我把原来一些需要复杂渲染的部分,都用 rust 编译成了 wasm,这样在浏览器运行也可以保证高性能。

以前 rust 做的转录、tts 模块也都以 worker 进程的形式保留下来了,electron 需要用到的时候可以直接起 rust 编译出来的进程(Codex 也是类似),和这些进程通信,后台的性能也比纯 TypeScript + Node 要好不少。

有兴趣的话可以看代码库:http://t.cn/AXKKKVpU

发布于 美国