MailVault 在 Windows 上占用多少内存?我们做了实测
MailVault 2.16 是第一个支持 Windows 的版本。对任何新的桌面应用,尤其是使用网页界面的那种,人们问的第一个问题往往是它占用多少内存。于是我们把已经在 Mac 上使用的内存测试,用同样的测试邮箱,搬到一台 Windows 11 笔记本电脑上跑了一遍,并记下了每一个数字。
简短的回答是:打开时约 210 MB,加载 10,000 封邮件的收件箱后仍约 210 MB,打开这个大收件箱的几秒钟内峰值接近 365 MB,负责同步的后台助手约占 23 MB。
测试方法
测试使用本地测试邮件服务器上的两个邮箱账户:一个收件箱有 58 封邮件,另一个有 10,000 封。一次自动化运行像真人一样操作真实的应用:打开 MailVault,打开小收件箱,然后切换到大账户,等到全部 10,000 条邮件标题都出现在列表中。它把整个列表从头滚动到尾,然后让应用静置十分钟。每一步都会记录 MailVault 拥有的每个进程的内存。
这台笔记本电脑是一台 MSI,配备 Intel Core i7-13620H 和 16 GB 内存,接着电源运行 Windows 11 23H2。它不是一台干净的机器:其他应用也开着,包括另一份 MailVault,所以请把它当作一台普通、繁忙的电脑。我们把整个测试完整做了三遍,每次都用全新的空白配置文件,下面的数字是这三次运行的范围。所用的构建是 MailVault 2.16 打开测试钩子后的优化发布版本,因此和正式下载版接近,但并非逐字节相同。
什么算作 MailVault 的内存
MailVault 在 Windows 上并不是单一进程,如果只统计名字叫 MailVault 的那一个,会漏掉大部分内存。它由三个部分组成:
- 应用窗口(
mailvault.exe):窗口、菜单,以及与 Windows 的连接。 - 后台助手(
mailvault-daemon.exe):同步、把邮件保存到保险库、搜索索引和备份。窗口关闭后它仍会继续运行,让定时备份照常执行。 - Microsoft Edge WebView2(多个
msedgewebview2.exe进程):负责绘制界面的引擎。它是 Windows 自带的组件,因此 MailVault 不必自带浏览器,它的工作被拆分成一个渲染进程、一个 GPU 进程、一个浏览器进程,以及一些小型的网络和存储辅助进程。
我们把它们全部计入,但只计入属于我们启动的这个 MailVault 的那些进程。我们使用的数字是任务管理器“内存”列里显示的数字:私有工作集,也就是只属于该进程、此刻正驻留在内存中的部分。共享页面,比如 Edge 和其他应用也在用的 WebView2 程序代码,不计入其中。
测试结果
Windows 11 · Intel i7-13620H · 16 GB · 3 runs · all MailVault processes
moment Task Manager commit size
launch, 58 messages 209 – 224 MB 297 – 298 MB
10,000 messages loaded 197 – 218 MB 297 – 302 MB
peak while opening 10,000 357 – 367 MB 545 – 560 MB
after scrolling all 10,000 234 – 252 MB 355 – 356 MB
after ten minutes idle 102 – 122 MB 308 – 318 MB
background helper, 10,000 msgs 22 – 23 MB
app window 11 – 13 MB
第二列是提交大小:每个进程已经保留的私有内存,无论它此刻是否驻留在内存中。我们是在第一次运行之后才加上这一列的,所以它只覆盖两次而不是三次运行。它对最后一行尤其重要:几分钟没有操作之后,Windows 会从不使用内存的进程手里收回内存,任务管理器的数字会降到约 110 MB。这部分内存不是 MailVault 释放的,而是 Windows 收走的,提交大小显示应用仍然保留着约 310 MB,等你回来时可以要回。如果只想要一个数字来说明 MailVault 在 Windows 上的代价,就用这个:加载大邮箱时大约 300 MB。
内存都去哪儿了
加载 10,000 封邮件后,大约五分之四的内存属于负责绘制界面的 WebView2。真正属于 MailVault 自身代码的部分,即应用窗口和后台助手加起来,大约只有 35 MB。
- WebView2 渲染进程,负责绘制界面:86 MB
- WebView2 GPU 进程:51 MB
- WebView2 浏览器、网络和存储进程:37 MB
- 后台助手:23 MB
- 应用窗口:12 MB
后台助手很小,因为它不会把你的邮件保留在内存里。邮件和邮件标题缓存存放在磁盘上的文件和一个小型数据库中,需要时助手才会去读取。它从启动时的 8 MB,在同步完 10,000 条邮件标题后增长到 23 MB。安静十分钟后,任务管理器显示的数字回落到 10 MB,但它的提交大小仍保持在 25 MB 左右:这一下降是 Windows 收回内存所致,并不是助手主动释放了内存。
打开一个大邮箱
唯一会出现内存跳升的时刻,是你第一次打开一个大账户。MailVault 会把这个邮箱缓存的全部邮件标题一次性加载进列表,这样排序、计数和筛选才能作用于整个邮箱,而不只是你已经滚动过的那部分。渲染进程在构建这份列表时会短暂地大致翻倍,之后又会归还大部分。
我们在 Mac 上也测到了同样的峰值,并尝试通过分批加载邮箱来消除它,但没有效果:峰值原地未动。要消除它需要改变列表存放邮件的方式,这在我们的计划中,但不在这个版本里。
Windows 与 Mac 并列对比
我们在 9 月 22 日,也就是 Windows 测试的四天前,在一台配备 16 GB 内存的 Apple M4 Mac mini 上做了同样的测试。启动时和峰值时的总量都很接近。加载大邮箱后,Windows 的数字更低;空闲时由于前面说的内存收回,数字要低得多。
| 启动时,58 封邮件 |
|---|
| Windows,任务管理器内存209–224 MB |
| Windows,提交大小297–298 MB |
| Mac,活动监视器内存180 MB |
| 已加载 10,000 封邮件 |
| Windows,任务管理器内存197–218 MB |
| Windows,提交大小297–302 MB |
| Mac,活动监视器内存315–324 MB |
| 打开 10,000 封邮件时的峰值 |
| Windows,任务管理器内存357–367 MB |
| Windows,提交大小545–560 MB |
| Mac,活动监视器内存368–380 MB |
| 空闲十分钟后 |
| Windows,任务管理器内存102–122 MB |
| Windows,提交大小308–318 MB |
| Mac,活动监视器内存234–263 MB |
请把这理解为两组并列的测量结果,而不是一场比赛。两套系统统计内存的方式并不相同:Mac 上活动监视器的数字包含了 macOS 已经压缩过的内存,而任务管理器的数字不包含 Windows 收回的内存,提交大小统计的是已保留、但可能从未被用到的内存。两台机器本身也不同,Mac 上的构建版本还早了四天。这次对比说明的是:MailVault 在两个系统上占用的内存量级相当,都在几百兆字节的低端,而且在我们观察的十分钟闲置时间里,它在两个系统上都没有增长。
这次测试没有显示什么
- 真实邮件更大。测试邮件很小,所以已打开邮件的缓存从未被填满。大量阅读邮件最多可能额外增加 128 MB,这是缓存的上限。
- 十分钟,不是十天。这个空闲测试的时长足以发现快速泄漏,但发现不了缓慢的泄漏。更长时间的测试是下一步。
- 只测了一台笔记本电脑和一台 Mac。不同的显卡或 Windows 版本可能会改变 WebView2 的数字,而这部分占了总量的大半。
你可以自己重复这项测试。它是 MailVault 源码中的 ram-footprint 端到端测试,通过 wdio.ram.conf.js 运行,会把每一次读数逐进程写入一个 JSON 文件。
MailVault 现已支持 Windows。
阅读邮件、在本地保留一份完整副本,并离线搜索它们,占用的内存不过相当于几个浏览器标签页。免费使用,Premium 提供定时备份等更多功能。
测量时间为 Windows 2026 年 9 月 26 日,macOS 2026 年 9 月 22 日。相关阅读:50,000 封邮件,毫秒级搜索。