跳到文章正文
应用 编辑推荐

Discord 扔掉 Electron:内存从 1GB 掉到 290MB,顺手弃了 React Native

CTO 晒出任务管理器截图:新客户端 Discord Phoenix 只占 290MB,还在同时…

Discord 扔掉 Electron:内存从 1GB 掉到 290MB,顺手弃了 React Native

一张 Windows 任务管理器截图,最近在开发者圈子里传得很广。进程名写着 Discord Phoenix,内存占用 290.2MB——而且同时登录了两个账号。老用户看到这个数字大概会愣一下:现在的 Discord,多进几个服务器就能吃掉 1GB 以上。

一分钟速览

  • Discord 正把客户端迁移到 Rust,桌面端移除 Electron,移动端放弃 React Native;
  • 新客户端代号 Discord Phoenix,双账号下内存约 290MB;
  • 网页端将采用 HTML 渲染器加 WASM 逻辑,而非 JS;
  • 官方未公布上线时间,只表示希望尽快开放测试;
  • Discord 从 2018 年就开始在基础设施和语音链路使用 Rust。

这不是一时冲动

Discord 和内存问题缠斗了很久。2025 年 10 月,团队针对 Windows 客户端启动专项排查,到当年 12 月修复了至少 9 项内存泄漏、死锁和缓冲区溢出问题,还加了遥测和内存分析工具。结果是 P95 内存下降约 5%——对长期挂机、频繁切换频道的用户来说,杯水车薪。

真正让外界哗然的是自动重启实验:当内存超过 4GB,客户端会在用户离开电脑后自行重启,条件是运行满一小时、不在语音通话中、每天最多一次。一款聊天软件要靠重启来控制内存,本身就说明架构层面到了极限。

今年 9 月,团队把桌面端升级到 Electron 42,调整调用方式后 CPU 中位数下降约 17%,但内存中位数反而涨了约 4%。移动端升级 React Native 后,CPU 和启动时间各降约 5%。这些数字说明:不是没优化,是优化到头了。

Rust 换来的到底是什么

Electron 的本质是把 Chromium 和 Node.js 打包进应用,开发效率高,代价是内存和启动开销。对 Discord 这种常年后台驻留、还要和游戏抢资源的软件,这笔税尤其贵。

用 Rust 重写,等于把渲染和逻辑的边界重新划一遍:内存由开发者显式管理,没有垃圾回收的停顿,启动时不必拉起整个浏览器内核。CTO 的说法很直白——点击流畅、启动更快,他再也回不去了。

但重写的成本极高。Discord 从 2018 年就在用 Rust,基础设施、语音技术、部分客户端代码已经迁移,这次是把最后一大块搬过去。没有多年积累,不可能在这个时间点动手。

AI 编码的影子

社区里有人调侃他们终于发现 Vibe Coding 了。官方没接这个话,但 Discord 工程副总裁今年 3 月公开介绍过内部 AI 开发平台 Vibeyard:员工过去要几天甚至几周才能交付的内部应用,现在借助 Claude、CLAUDE.md、GitHub Actions 和 Cloudflare,大约两分钟就能部署。

这两件事放在一起看很有意思:AI 编码大幅降低了重写的边际成本,让过去算不过账的架构迁移重新变得可行。未来几年,可能会有更多公司选择推倒重来,而不是继续打补丁。

给同行的提醒

Rust 重写不是万能药。跨平台 UI、无障碍、输入法、系统集成,每一项都是坑。Discord 敢做,是因为它有足够的工程储备和明确的性能痛点。对多数团队来说,更现实的做法是先把瓶颈量化——到底是内存、CPU 还是启动时间——再决定要不要动架构。

本文地址:https://www.163264.com/20384