
Discord联合创始人展示Rust新客户端启动速度远超Electron版
来源标题:Every Windows 11 app should kill Electron, and Discord just showed why
Discord联合创始人兼CTO Stanislav Vishnevskiy发布对比视频显示,全新Rust客户端冷启动后好友列表已加载完成,而现有Electron版仍停留在加载界面。视频中Electron版先启动、空白暗窗约三秒后才出现提示语,新客户端以Discord Phoenix名称运行,双账号登录时Task Manager显示内存占用290.2MB。Vishnevskiy表示新客户端不仅内存更省,点击操作也感觉即时。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Discord 新的 Rust 客户端已经加载好友列表了,而当前的 Electron 应用还没走完加载界面——这段 15 秒的片段来自 Discord 联合创始人兼 CTO Stanislav Vishnevskiy 的 X 账号。截至本文撰写时,该视频已有 230 万次观看,Discord 员工也确认两个应用都是冷启动。
Vishnevskiy 还透露,新客户端(任务管理器中显示为 Discord Phoenix)占用 290.2MB 内存,这是在同时登录两个账号的情况下测得的,这让本就出色的内存表现更显合理。
“新 Discord 客户端占用更少内存只是故事的一部分。点来点去的感觉是即时的,我回不去了。看看启动时间吧,”Vishnevskiy 在 X 上写道,Discord 官方账号也分享了这段片段,左边是当前客户端,右边是 Rust 重写版。
我们逐帧看了视频。令人印象深刻的是,当前客户端先被打开,显示一个空白的深色窗口约三秒,随后出现一条提示:“在远古时代,Discord 只是一个纯浏览器应用。”有趣的是,这个 Electron 应用今天依然带着一个浏览器引擎。
新客户端大约晚一秒半被双击,但它的窗口在一秒内就淡入显示。当旧应用在启动约五秒后进入界面时,Rust 版本已经加载完好 友列表,而 Electron 客户端还短暂显示着“目前没有好友在线”。
当然,X 上有人问新应用是不是直接从系统托盘弹出的。“两个都是冷启动,真的就这么快。我们在内部已经用了一段时间,我第一次全新打开它的时候还以为自己忘了关掉它,”Discord 音视频负责人 Coral 回复道。
负责 Discord 社交与社区、拍摄这段片段的 Travis 补充说,托盘启动意味着“好友列表早就加载好了!”Vishnevskiy 感谢他“找到这些破旧的老笔记本”,那些是带 Copilot 键的 ThinkPad,所以是 2024 年或更新款,我可不敢说它们破旧或老。它们是很漂亮的机器!
你可能已经知道,当前应用打开时通常会检查更新并显示“正在启动”界面,X 上有人说这“每次要花 5-10 秒”。被问到为什么新客户端跳过了这一步时,Coral 说:“它引导启动得太快了,加上是新架构,我们根本不需要那个模态框。我们在后台自动更新。”
Discord 也没有把更新交给 Microsoft Store 或 Windows 的 Update Orchestration Platform,因为 Coral 在被问到时说“我们目前没有”。
当一条回复说聊天应用占用 290MB“依然很恶心”时,Vishnevskiy 说:“那些 4K 头像装饰总得有地方渲染吧 ;) 不过说正经的,这个客户端实际上同时运行着两个账号,新客户端支持这个。”
如今的账号切换器允许你添加最多五个账号并在它们之间切换。被问到新客户端能否让工作和个人账号同时运行“而不需要在中间销毁客户端”时,Vishnevskiy 回答“可以。”再次令人印象深刻且兴奋。
作为对比,一位 Discord 员工在 2025 年 12 月表示,正常使用低于 1GB,而公司测试在 4GB 时自动重启应用。所以,290.2MB 比 1GB 低了约 70%,而在我们的 PC 上,Electron 应用通常空闲时占用 1-2GB。需要说明的是,这是一个早期构建的截图,Discord 尚未发布两个客户端的同类基准测试,但我们会在拿到 Rust 版本后做这个测试。
Discord 确实尝试过从内部修复 Electron。其 9 月更新日志称,Electron 42 升级将 CPU 使用中位数降低了约 17%,但“代价是 p50 内存使用量小幅回归(约 4%)”。甚至后来测试的游戏模式开关也没有提到内存。
Electron 从 Chromium 继承了多进程架构,所以每个 Electron 应用都自带浏览器引擎,有一个主进程,每个窗口还有一个渲染进程。许多人猜测 Discord 会选 Tauri,它用 Rust 处理应用逻辑,但在系统 webview(Windows 上是 WebView2)内用 HTML、CSS 和 JavaScript 构建界面。
Discord 选择了 GPUI,这是来自 Zed 代码编辑器开发者的“一个快速、混合即时与保留模式、GPU 加速的 Rust UI 框架”。GPUI 在 GPU 上绘制界面,不使用任何 HTML,而 Discord 自 2018 年起就使用的 Rust 无需垃圾回收器即可管理内存。
你可能会问,为什么不用 WinUI?(至少我想到了)。Discord 没有提到它,也不太可能提,因为微软的原生框架只在 Windows 上运行,而 GPUI 已经在 Windows、macOS 和 Linux 上驱动 Zed。Discord 在 GPUI 之上有自己的补丁,Vishnevskiy 说“如果与社区相关,我们会看看能向上游贡献什么。”
Web 技术保留在合理的地方,YouTube 嵌入和 Activities 将使用系统 webview。“我们使用类似 Tauri 的原生 webview,”Vishnevskiy 谈到 Activities 时说。
手机端保留原生界面,但将通过 Rust 与桌面端共享应用代码。关于 React Native,Vishnevskiy 解释说:“从一开始 iOS 应用就是 React Native 写的,Android 几年前也被移植到 React Native,以实现功能对等,因为它一直落后。”
浏览器版本将继续渲染 HTML,但“逻辑将用 WASM 而非 JS。”WebAssembly(WASM)让用 Rust 等语言编写的代码能在浏览器内运行,所以 Web 应用也能共享 Rust 代码。至于外观,不管你喜不喜欢,“应用的外观和操作与当前版本完全一致,”Vishnevskiy 说。
如果你等不及想试试,Discord 营销总监 Ryan K. Rigney 说:“很快进入私密测试。我们会花时间确保它先稳定安全。不会太久。”我宁愿等他们解决所有 bug。
(原文较长,此处译出前 6000 字,完整内容请点「打开原文」。)
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。