跳至内容
← 返回博客

MailVault 在 Windows 上占用多少内存?我们做了实测

6 分钟阅读

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 在 Windows 11 上显示有 58 封邮件的小测试收件箱,侧边栏中有两个测试账户,阅读窗格为空。
我们测量的第一个时刻:MailVault 在 Windows 11 上打开小测试收件箱,截取自测试运行本身。

什么算作 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。

MailVault 在 Windows 11 上选中了大测试账户。收件箱标题显示 10,000 封邮件,列表底部是最早的测试邮件。
全部 10,000 条邮件标题已加载,列表也滚动到了末尾,也就是“已加载 10,000 封邮件”这一行对应的时刻。收件箱显示 10,000 封邮件,保险库计数器显示为 0,因为这次测试中没有任何邮件被归档。

内存都去哪儿了

加载 10,000 封邮件后,大约五分之四的内存属于负责绘制界面的 WebView2。真正属于 MailVault 自身代码的部分,即应用窗口和后台助手加起来,大约只有 35 MB。

  • WebView2 渲染进程,负责绘制界面:86 MB
  • WebView2 GPU 进程:51 MB
  • WebView2 浏览器、网络和存储进程:37 MB
  • 后台助手:23 MB
  • 应用窗口:12 MB
加载 10,000 封邮件时任务管理器显示的各部分内存,为三次运行的平均值,总计约 209 MB。

后台助手很小,因为它不会把你的邮件保留在内存里。邮件和邮件标题缓存存放在磁盘上的文件和一个小型数据库中,需要时助手才会去读取。它从启动时的 8 MB,在同步完 10,000 条邮件标题后增长到 23 MB。安静十分钟后,任务管理器显示的数字回落到 10 MB,但它的提交大小仍保持在 25 MB 左右:这一下降是 Windows 收回内存所致,并不是助手主动释放了内存。

打开一个大邮箱

唯一会出现内存跳升的时刻,是你第一次打开一个大账户。MailVault 会把这个邮箱缓存的全部邮件标题一次性加载进列表,这样排序、计数和筛选才能作用于整个邮箱,而不只是你已经滚动过的那部分。渲染进程在构建这份列表时会短暂地大致翻倍,之后又会归还大部分。

0 100 200 300 400 0 s 20 s 40 s 60 s 80 s 1: 366 MB 2: 367 MB 3: 356 MB
点击 10,000 封邮件的账户(虚线)后,每 5 秒记录一次所有 MailVault 进程的任务管理器内存总量,MB 为单位,每次运行一条线。三次运行都在十秒内升到 356 到 367 MB 之间,并在二十秒内回落到 200 到 250 MB 之间。

我们在 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
所有 MailVault 进程的总内存。每根柱子都标注了各次运行间的数值范围,柱子的长度取该范围的中点。

请把这理解为两组并列的测量结果,而不是一场比赛。两套系统统计内存的方式并不相同: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 封邮件,毫秒级搜索。