不知道你有没发现,在 Windows 11/10/8 系统中,除了 pagefile.sys 和 hiberfil.sys 文件外,在系统根目录会多出一个 swapfile.sys 虚拟内存文件。Windows 11/10/8 系统为什么会同时使用 SWAP 交换文件和 Page 页面文件呢?
swapfile.sys是什么文件?
swapfile.sys是Windows操作系统中的一个虚拟内存交换文件。当系统的物理内存不足时,Windows会使用硬盘空间来模拟额外的内存,以缓解内存压力。此时,就会生成swapfile.sys文件。该文件是系统正常运行的一部分,用于存储临时数据和程序运行时的交换信息。
其实 swapfile.sys 文件目前只被用来交换 Universal App (其实就是Metro App)的个别类型数据,而不是直接作为系统交换文件使用。swapfile.sys 文件与 pagefile.sys 和 hiberfil.sys 一样,都会被写到系统根目录下,如果你在文件夹选项中取消隐藏受保护的操作系统文件并打开显示隐藏的文件、文件夹和驱动器选项,就可以看到。
- Hiberfil.sys 休眠文件是 Windows 休眠时用于向磁盘写入内存内容的
- Pagefile.sys 页面文件是用于在操作系统内存不足时临时交换数据的
- swapfile.sys 文件主要用于交换 Universal Apps 的相关数据
你可能会问,微软为啥要单独弄一个 swapfile.sys 虚拟页面文件出来呢?由于 Universal App 这类应用的工作方式与传统意义上的应用程序在工作方式上是有所不同的,因此微软需要有一个新的模式来为这种应用建立内存管理的框架。
当 Windows 检测到系统负载压力时,会自动将非活动状态 Universal App 应用的交换数据写入到磁盘的 swapfile.sys 虚拟页面文件当中,释放出内存并将应用切换到暂停状态。当应用被用户切换到活动状态时,再从磁盘将交换数据读入 working set。
由于 Universal App 应用与传统应用程序在使用模式、内存空间申请、内存增长步长、读写策略上都有很大的不同,因此微软为了方便(偷懒走捷径吧)最终选择了将 swapfile.sys 交换文件与 pagefile.sys 页面文件分开进行处理。
swapfile.sys的作用是什么?
swapfile.sys的主要作用是作为物理内存的扩展。当物理内存不足时,系统会将部分不常用的数据暂时存储到swapfile.sys文件中,从而释放物理内存供其他程序使用。这对于提升系统的整体性能和稳定性非常重要。
为什么不能删除swapfile.sys?
尽管swapfile.sys在硬盘上占用一定的空间,但它是系统正常运行所必需的。删除或禁用该文件可能导致系统性能下降,甚至在某些情况下引发系统错误或崩溃。特别是对于一些大型应用程序或游戏,它们可能需要大量的虚拟内存来运行,这时swapfile.sys的作用就尤为重要。因此,不建议随意删除或修改该文件。
如何删除Swapfile.sys文件
一般情况下,我们都是不建议用户删除 Swapfile.sys 文件的,其占用的磁盘空间非常小,一般最大情况下不会超过 256 M。但如果你使用的是存储资源非常有限的移动设置,删除 Swapfile.sys 文件则可以释放出一定的磁盘空间。(几百 M 空间的释放量,大家都不太在乎了吧)
swapfile.sys 与 pagefile.sys 文件的管理方式一致,无法直接删除。由于采用了统一的管理方式,所以要禁用 swapfile.sys 就得把虚拟内存给禁了,这样 pagefile.sys 页面文件也就消失了。
禁用虚拟内存的配置:按下 Windows + R — 执行 systempropertiesadvanced 命令 — 在性能中点击设置 — 选择高级选项卡 — 虚拟内存中进行更改。我在这里给大家几点建议:
- 内存小于 4G 的 Windows 最好不要禁用虚拟内存
- 一般情况下,可以把虚拟内存大小设置为实际物理内存的 1.5 倍
- Windows 中增大虚拟内存会立即生效,减小和禁用虚拟内存需要重启系统
对于 Windows 如何在虚拟内存和物理内存之间进行调度,我就不在本文中进行介绍了。如果希望知道请留言,人多我就再开个主题。
总的来说,虽然swapfile.sys占用一定的硬盘空间,但它对系统的正常运行和性能至关重要。除非您确切知道自己在做什么,并且明白可能带来的风险,否则不建议删除或修改此文件。如果您觉得系统性能有所下降或存在其他问题,建议寻求专业的技术支持和帮助。