给 AI 腾内存?Discord 抛弃Electron,省70%内存还秒开:Windows应用该跟进了

Discord 联合创始人兼 CTO Stanislav Vishnevskiy 在 X 上宣布,Discord 正将客户端迁移至 Rust:桌面端移除 Electron,移动端放弃 React Native。他晒出的 Windows 任务管理器截图显示,新客户端以“Discord Phoenix”的名称运行,内存占用约 290.2MB;而现有 Windows 客户端在加入多个服务器后,内存占用很容易达到 1GB 甚至更高。

Discord Phoenix 把任务管理器截图变成 290MB 的宣言

这张截图之所以引发关注,不只是因为数字小,更因为它来自一个长期被吐槽“吃内存”的桌面应用。Vishnevskiy 随后补充称,截图中的客户端同时运行着两个账户,新客户端支持账户多开。换句话说,290.2MB 并不是“只开一个空白窗口”的成绩。

对比旧版 Discord,差距更明显:

  • 旧版 Electron 客户端在空闲状态下通常占用 1GB 至 2GB 内存;
  • 极端情况下可达 4GB;
  • 如果以旧版空闲 1GB 左右对照,290MB 已接近砍掉七成内存;若碰上多服务器、长时间使用后的高占用,落差还会更大。

Discord 去年其实已经承认过 Windows 客户端的资源占用问题。2025 年 12 月,一名 Discord 员工在 Reddit 上确认,公司正在测试一项机制:当内存占用超过 4GB 时自动重启客户端。当时 Discord 表示,正常使用下内存应低于 1GB,并已定位和修复多个内存泄漏场景,高负载下的 P95 内存占用下降了约 5%。P95 指将用户内存数据从低到高排序后位于 95% 位置的数值,也就是排除最极端 5% 情况后的高负载水平。如今 Phoenix 客户端把常见占用压到约 290MB,说明 Discord 想做的不是小修小补,而是换掉底层路线。

Electron 的“全家桶”账单被撕开

Electron 的资源开销源于其架构:每个 Electron 应用都打包一份完整的 Chromium 浏览器内核,而不是像 WebView 那样与系统浏览器共享资源。Discord 又被认为是优化较差的 Electron 应用之一,打开服务器或长时间使用后内存持续攀升。对于需要常驻后台、同时连接语音、文字频道和大量社区的 Discord 来说,这份“全家桶”账单最终会落到用户的任务管理器里。

给 AI 腾内存?Discord 抛弃Electron,省70%内存还秒开:Windows应用该跟进了

新客户端没有选择同样基于 Rust 的 Tauri 框架。Tauri 调用操作系统 WebView 渲染界面,虽能避免打包 Chromium,但仍依赖 Web 引擎。Discord 最终采用的 GPUI 由 Zed 编辑器团队开发,是一款 GPU 加速的 Rust 原生 UI 框架,不依赖 WebView 或 Chromium 进行界面绘制。

Vishnevskiy 表示,新应用仅在 YouTube 和 Activities 等嵌入内容场景调用系统 WebView,应用本身是原生的,外观和操作与现版保持一致。这意味着 Discord 并不是简单把网页“套壳”换成另一个壳,而是把界面绘制、逻辑系统和平台集成一起往原生方向推。

点击秒开和移动端最快,Rust 重写不只省内存

内存数字只是这场迁移最直观的一部分。Vishnevskiy 在展示新客户端时称:“新版 Discord 客户端内存占用更低,这还只是其中一点。点击操作流畅无比,我再也回不去了。看看启动速度就知道了。”他还表示,移动端新版本“现在可能是我手机上响应速度最快的应用了”。

按照他的说法,迁移范围不止桌面端:

  • 桌面端移除 Electron,界面层采用 GPUI;
  • 移动端逐步迁移至 Rust,iOS 和 Android 当前使用的 React Native 将被替换;
  • 移动端保留原生 UI,通过 Rust 与桌面端共享应用代码;
  • 网页客户端会有一个 HTML 渲染器,但逻辑系统将采用 WASM 而非 JS。

Vishnevskiy 将“让整个客户端都跑在 Rust 上”称为一直以来的目标,并称新客户端“很快”将进入面向用户的测试阶段,但未给出正式发布时间。目前 Discord 官方尚未另行发布公告。

GPUI 生态与无障碍,Rust 原生路线的暗礁

Rust 重写并不意味着所有问题自动消失。Rust 的内存安全机制能够帮助开发者避免大量内存错误,但不能自动消除业务逻辑导致的内存泄漏、资源缓存过大或 GPU 显存占用问题。客户端最终消耗多少资源,仍然取决于整体架构和代码实现。

给 AI 腾内存?Discord 抛弃Electron,省70%内存还秒开:Windows应用该跟进了

更现实的挑战来自 GPUI 的生态成熟度。与 Electron、成熟的浏览器技术栈相比,GPUI 仍有差距。Discord 需要自行维护大量平台适配工作,包括输入法、文本选择、窗口管理、辅助功能和操作系统集成。采用经过大量修改的 GPUI 分支,也意味着团队未来需要持续承担框架维护和版本同步成本。

无障碍支持尤其值得关注。Electron 背后的 Chromium 拥有长期积累的无障碍基础设施,能够与 Windows UI Automation、macOS 辅助功能等系统机制交互。GPUI 虽然已经出现通过 AccessKit 等方式实现无障碍支持的方案,但具备相关接口,并不等于实际应用能够立即获得完整的屏幕阅读器和键盘导航体验。对于 Discord 这样拥有大量普通用户、同时服务不同设备和使用习惯的产品,这些能力并不是可以放到最后再处理的附属功能。

Windows 应用该不该跟进,答案藏在场景里

Discord 的案例给 Windows 应用提供了一个很有冲击力的参照:当 Electron 应用的内存长期以 GB 计,用户对“秒开”和“轻量”的感知会非常直接。尤其是在本地 AI 功能开始挤占内存的当下,客户端省下来的资源,可能真的就是留给模型和后台任务的余量。

但这不意味着所有 Windows 应用都该立刻抛弃 Electron。更合理的判断是:

  • 如果应用需要常驻后台、频繁交互、对启动速度和内存敏感,Rust 原生路线值得认真评估;
  • 如果团队高度依赖 Web 生态、界面迭代快、平台适配复杂,Electron 仍有工程效率优势;
  • 如果选择 GPUI 这类较新的原生框架,就要提前算上输入法、无障碍、系统集成和长期维护成本;
  • 用户测试和正式发布之间还有距离,Discord 自己也尚未给出时间表。

Discord 用“Discord Phoenix”证明了一件事:桌面客户端的内存账单不是不能重写,只是代价和决心要一起到位。Windows 应用该不该跟进,最终取决于产品是否愿意为更轻的运行时、更快的响应和更深的平台控制力,承担一次底层迁移的长期工程账。