不知道你有没发现,在 Windows 10/8 系统中,除了 pagefile.sys 和 hiberfil.sys 文件外,在系统根目录会多出一个 swapfile.sys 虚拟内存文件。Windows 10/8 系统为什么会同时使用 SWAP 交换文件和 Page 页面文件呢?
其实 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 文件的,其占用的磁盘空间非常小,一般最大情况下不会超过 256 M。但如果你使用的是存储资源非常有限的移动设置,删除 Swapfile.sys 文件则可以释放出一定的磁盘空间。(几百 M 空间的释放量,大家都不太在乎了吧)
swapfile.sys 与 pagefile.sys 文件的管理方式一致,无法直接删除。由于采用了统一的管理方式,所以要禁用 swapfile.sys 就得把虚拟内存给禁了,这样 pagefile.sys 页面文件也就消失了。
禁用虚拟内存的配置:按下 Windows + R — 执行 systempropertiesadvanced 命令 — 在性能中点击设置 — 选择高级选项卡 — 虚拟内存中进行更改。我在这里给大家几点建议:
- 内存小于 4G 的 Windows 最好不要禁用虚拟内存
- 一般情况下,可以把虚拟内存大小设置为实际物理内存的 1.5 倍
- Windows 中增大虚拟内存会立即生效,减小和禁用虚拟内存需要重启系统
对于 Windows 如何在虚拟内存和物理内存之间进行调度,我就不在本文中进行介绍了。如果希望知道请留言,人多我就再开个主题。