Discord 拆掉 Electron:双账号闲置仅 290MB

Discord 拆掉 Electron:双账号闲置仅 290MB

DiscordRustElectronGPUI跨平台开发

数据源:Windows Latest + X

ThinkPad 并排冷启动:老客户端卡在暗窗,新版已经刷出好友

2026 年 11 月,Discord 联合创始人 Stanislav Vishnevskiy 公开了一段实测。两台同配置的 ThinkPad 笔记本并排摆放,同时触发桌面客户端冷启动。

现役的 Electron 客户端率先被点击。屏幕陷入长达 3 秒的空白暗窗。随后窗口中央才浮现出一行系统提示语:「古早时期,Discord 只是一个纯网页应用。」

两台笔记本并排冷启动对比 图:两台 ThinkPad 并排冷启动对比,左侧 Electron 版尚在加载暗窗,右侧 Rust 版已完成初始化。来源:Windows Latest(实测视频截图)

第二台机器上,代号 Phoenix 的 Rust 版被晚约 1.5 秒双击,窗口仍在 1 秒内淡入,好友列表随即就绪。老版本约 5 秒后才进到主界面,还短暂显示「当前无好友在线」。

启动迟滞与网络吞吐无关。Electron 必须拉起主进程、GPU 进程与渲染辅助进程。Chromium 的初始化管线耗时固定,V8 解析脚本的开销也跑不掉。这构成了框架无法回避的固定启动成本。

Rust 版没有这套引擎要预热,界面交给 GPU 直接绘制,启动路径上少了一整段引擎初始化。两台机器的对比,把差距摊在同一块屏幕上。

双账号闲置仅 290MB:拆掉 Chromium 壳子省下七成内存

除了启动速度,新客户端在任务管理器里的读数更具说服力。代号 Phoenix 的新版本闲置内存为 290.2MB。这项数据是在两个账号同时登录的状态下测得的。

现役客户端早已不堪重负。2025 年 12 月,Discord 工程师透露日常内存应控制在 1GB 以下。内部甚至在测试超过 4GB 自动重启进程的防御机制。实测显示,现役客户端日常闲置普遍在 1GB 到 2GB 之间。

任务管理器内存读数 图:Windows 任务管理器中代号 Phoenix 的新客户端内存读数,双账号登录下闲置占用为 290.2MB。来源:Windows Latest(测试数据截图)

面对 290MB 的读数,Vishnevskiy 解释后台需要渲染 4K 动态头像,还要并行维护双账号。相较旧版本,290.2MB 的内存消耗直接下降了 70%。

功能一个没少,内存却出现断崖式下跌,浪费的源头也就清楚了。长期困扰桌面端的内存膨胀,来自浏览器引擎的沙箱隔离与 DOM 树开销,跨进程通信的数据拷贝再往上加一层。

Phoenix 去掉了这层封装。同一个界面元素不再需要在多个进程里各留一份副本,界面状态只有一处真身。臃肿从来不是聊天功能本身造成的。

弃用 HTML 换 GPUI:Rust 引擎直接接管三端渲染

在技术选型上,团队避开了 Tauri,也放弃了微软主推的 WinUI。Discord 选定了 Zed 编辑器开源的界面框架 GPUI。

Tauri 仍旧依赖系统自带的 WebView 控件。HTML 与 CSS 的排版开销依然存在。WinUI 则受制于微软平台,无法兼顾 macOS 与 Linux 生态。

Discord 新版 Rust 客户端界面 图:Discord 新版 Rust 桌面端界面,视觉布局与现役版本保持一致。来源:Windows Latest(官方演示界面)

GPUI 采用面向 GPU 的管线设计,界面层不再有 HTML。组件被组织成保留模式的场景图,绘制指令直接下发给图形硬件,样式计算与 DOM 树这两段固定开销随之消失。

Discord 从 2018 年就在生产环境里用 Rust,团队有多年系统级工程积累。它对 GPUI 打了自研补丁,Vishnevskiy 的说法是对社区有价值的部分会考虑回馈上游,没有承诺照单全收。

桌面端的架构重组还带动了全平台的代码收敛。移动端逐步剥离 React Native,在保留原生外壳的同时共享 Rust 核心业务。网页端继续渲染 HTML,但底层执行逻辑统一换成了 WebAssembly 模块。

修补现役框架碰壁:升级版本换不来架构级瘦身

转向 Rust 并非一时冲动。在此之前,工程团队已经穷尽了常规优化手段。此前的 Electron 42 核心升级把 CPU 占用中位数压低了 17%。

代价是内存反向走动。客户端的 p50 内存水位反涨约 4%。后来上线的 Game Mode 开关同样没碰内存这条线。

升级框架无法解决核心矛盾。Chromium 上游版本为了支持复杂的网页标准,往往引入更激进的投机优化与代码缓存。上层应用很难在框架既定取舍之外开辟新空间。

修补框架无果后,新架构收回了底层控制权。新客户端将认证凭据委托给系统底层,在 Windows 上直连原生的 Credential Manager。更新分发也绕开了应用商店,摆脱了外部平台的编排约束。

运行时的底层体积决定了优化的极限。当基础框架自身就占去数百兆内存时,修剪业务代码只是杯水车薪。推倒重构成了跨越瓶颈的必经之路。

通讯软件闲置吃掉数吉字节:硬件成本倒逼巨头清算技术债

客户端的膨胀是整个即时通讯行业的通病。实测显示,微软 Teams 在后台静默闲置时耗费 963MB 内存。WhatsApp 换成 WebView2 壳子后,峰值内存攀升至 1.2GB。

三款软件同时挂在后台,什么都不做,内存就这么没了。这种挥霍资源的工程惯性,正在遭遇硬件产业链的反噬。

现役客户端内存占用对照 图:现役 Electron 客户端后台常驻占用对照,日常闲置普遍突破 1GB。来源:Windows Latest(实测监控截图)

人工智能数据中心大量消耗内存产能,导致消费级内存价格持续走高。微软 Windows 负责人 Pavan Davuluri 直言,控制内存消耗已是全行业的核心议题。微软自身也在削减 Windows 11 的内存足迹。

面对海量用户,重写工程依然需要经历严格检验。290.2MB 仅是早期内部版本的读数,官方尚未公布长周期的基准数据。Ryan K. Rigney 表示即将开启私有测试。Mark Smith 也强调,无障碍支持和安全保障同性能具有同等权重。

打包浏览器内核,本质上是用硬件冗余掩盖研发惯性,这笔债拖了十年。一个有上亿月活的应用用它证明了原生重构可行。跨平台不等于必须自带浏览器,这才是这条新闻真正值钱的地方。

参考链接:

  • Windows Latest 深度实测报道
  • Stanislav Vishnevskiy 官方技术实测演示
  • Ryan K. Rigney 关于私有测试进度的公开声明
  • Discord 2026 年 9 月补丁说明