禁用 SysMain 能让 Windows 11 更快吗 禁用 SysMain(Windows 中原名为 Superfetch 的服务)并不会让大多数 Windows 11 电脑变快。SysMain 会利用闲置内存预加载你常用的应用,微软还表示,它会为快速启动准备启动数据。在我对两台电脑进行的测试中,关闭它对启动时间几乎没有影响,甚至还让应用冷启动稍微变慢。只有遇到特定问题时,禁用它才可能有必要,例如电脑只有 4GB 内存且使用速度较慢的硬盘。
在 YouTube 上搜索“加快 Windows 11 速度”,SysMain 几乎总会出现在建议禁用的服务列表中,旁边往往还有删除 Prefetch 的建议,而我们发现这么做也没什么帮助。
任务管理器显示 Service Host: SysMain 及 CPU、内存和磁盘列。图片来源:Windows Latest打开“服务”,Windows 对 SysMain 的描述是:“长期维护并提升系统性能。” 在任务管理器中,它显示为“服务主机: SysMain”。人们通常就是这样找到它的,往往是在启动后看到它占用 CPU 或磁盘时。
SysMain 会了解你使用哪些应用,并在你打开应用前将其部分内容加载到内存中。现任微软 Azure 首席技术官的Mark Russinovich在 2008 年解释说,每当内存腾出空间,SuperFetch 就会让 Windows 重新加载近期被移出的数据,“每秒加载几页,并使用极低优先级的 I/O,因此预加载不会影响用户或其他正在运行的应用。”
预加载的数据会进入备用列表,在任务管理器中显示为“已缓存”。Russinovich 写道,Windows 会为缓存中的每个页面分配 0 到 7 的优先级,并在应用需要内存时“优先从低优先级列表中取出页面”。简单来说,缓存内存只是暂借来用;应用需要时,Windows 会把它收回来。
SysMain 也有助于启动。微软的硬件评估文档指出,Superfetch 会“预先提取启动时经常访问的数据”,并将其存入休眠文件,以供快速启动使用,“避免恢复时频繁访问磁盘。”
不要把 SysMain 和 Prefetch 混为一谈。Prefetch 会写入小型 .pf 文件,记录应用启动时会读取哪些内容;SysMain 则负责决定哪些内容保留在内存中。SysMain 的数据库文件也存放在 C:\Windows\Prefetch 中。正如我们此前发现的那样,这个文件夹会记录你运行过的应用。
微软问答论坛有一篇发布于 2023 年 6 月的帖子,询问 SysMain 是什么,以及禁用后会发生什么。一条由独立顾问 John Jefferson Doyon 撰写、获 40 多人标记为有帮助的回复指出,“需要注意的是,禁用它可能会对系统性能产生负面影响。”回复建议保留默认设置。
我在一台 16GB 内存的电脑和一台 4GB 内存的测试电脑上测试了禁用 SysMain 的效果,两台都运行 Windows 11。16GB 的电脑是我的日常用机,另一台则是性能较弱的虚拟机,我只用它来测试功能。
不出所料,在我的日常用机上,禁用 SysMain 前后,启动时间和应用启动时间几乎没有变化。不过,虚拟机上的情况有所不同:
禁用 SysMain 之前:
重启电脑耗时 42.83 秒(没错,这台虚拟机确实很慢)
打开 ClipChamp 耗时 3.14 秒
禁用 SysMain 前的内存使用情况如下:
禁用 SysMain 前的内存使用情况。图片来源:Windows Latest禁用 SysMain 之后:
重启电脑耗时 35.18 秒,提升相当明显。
但打开 ClipChamp 耗时 8.48 秒
禁用 SysMain 前的内存使用情况如下:
禁用 SysMain 后的内存使用情况。图片来源:Windows Latest事实上,除非你的日常用机已经很老旧,否则没必要费心禁用 SysMain。
关于“SysMain 占用内存”的说法,内存数据最能说明问题。除了一些细微变化,基本没什么值得一提的。经过多次测试,我确实发现缓存内存有所减少,但只少了 100MB,对系统性能没有任何影响。缓存数值降低并不意味着应用能获得更多内存,因为即使不关闭 SysMain,Windows 也会在需要时释放这部分缓存。
微软关于缓存的说法并不新鲜。早在 2007 年,Tom’s Hardware 就发现,在一台配有 512MB 内存的 Windows Vista 电脑上,SuperFetch 和 ReadyBoost 将 OpenOffice Writer 的启动时间从 9 秒缩短至 2–4 秒,将 Outlook 2007 的启动时间从 10 秒缩短至 2–4 秒。不过,Tom’s Hardware 当时测试的是机械硬盘。微软在 2009 年表示,对于随机读取性能良好的 SSD,Windows 7 会关闭 Superfetch,因为这些功能是“为提升传统 HDD 的性能而设计的。”
不只是我这么认为。其他建议禁用 SysMain 的人也大多认同,在现代电脑上,你几乎感觉不到区别。XDA 的 Ty Sherback 在配备 64GB 内存和 NVMe 存储的 Ryzen 7 7800X3D 工作站上测试后,也发现区别不大;不过,老旧且内存较少的系统在启动后不久确实感觉更顺畅。即使是他也认为,内存不超过 8GB 的电脑最好保持 SysMain 启用。另一位 XDA 作者也承认,“你可能不会立即感受到性能提升。”
已禁用 SysMain。图片来源:Windows Latest关于 NVMe 系统的论坛帖子,大多以用户表示无论启用还是禁用都没区别告终:“我完全没发现性能有任何差别,唯一的区别就是少了一个后台服务。”
启动后的几分钟内,SysMain 使用 CPU 或磁盘是正常现象,因为它正在重新加载它认为你可能需要的内容。但如果这种情况持续数小时,就有问题了。
微软问答论坛那篇帖子中的一位用户表示,Windows 更新后,一台小型 HP 一体机上的 SysMain 占用了 96% 的 CPU;据用户估计,这台电脑只有 4GB 内存。对于这种内存有限、无法用于缓存,且硬盘老旧的电脑,停止 SysMain 是合理的做法,至少在升级内存之前如此。
微软还记录过一个特定的 Windows 7 错误 KB2723033:当某个 64 位应用使用特定标志编译时,SysMain 会反复让 CPU 占用率飙升,每次持续 1–2 分钟。这是一个老旧且少见的问题,但它说明 SysMain 出现异常通常是 bug,并不意味着这项服务毫无用处。
如果你怀疑是 SysMain 导致问题,先检查任务管理器,确认占用资源的进程确实是“服务主机: SysMain”,并且这种情况在启动 10 分钟后仍然持续。接着,在“服务”中停止它,但不要更改其启动类型,然后照常使用电脑一天。如果没有改善,就重新启动它。只有在问题因关闭而消失、重新启用后又出现时,才将其启动类型设为“禁用”。
如何在 Windows 11 电脑上禁用 SysMain。图片来源:Windows Latest使用 SSD 并不是禁用 SysMain 的理由,任务管理器中显示内存容量较大也不是。微软已经在从其他方面着手加快 Windows 11 的应用启动速度,例如跳过已在运行的应用所需的额外进程;而 SysMain 早已是为实现这一目标而设计的功能。
和页面文件一样,SysMain 是一项 Windows 内存功能。它在任务管理器中看起来像是在浪费资源,但实际上是为了提升系统性能。如果你的 Windows 11 电脑运行正常,就不必在意它是否处于启用状态。你在自己的电脑上禁用 SysMain 了吗?