内存管理是操作系统的主要功能之一,它控制和维护着每个系统进程的内存分配。从 Windows 10 Version 1507 开始,Microsoft 将内存压缩功能集成到了 Windows 内存管理流程中。这种内存管理技术旨在通过压缩存储在 RAM 中的某些信息来减少内存使用。
内存压缩功能在 Windows 11 和 10 操作系统中默认启用,也可以随时禁用。
什么是 Windows 内存压缩
在深入了解 Windows 内存压缩的本质之前,首先必须对「分页」有一定的了解:
- 分页是一种虚拟内存管理过程,它使用辅助内存或磁盘存储来减轻 RAM 的工作负载。当系统检测到 RAM 空闲空间不足时,会将一些系统进程的部分区域(称为页面)转移到硬盘上。
- 「页面」文件默认位于 Windows 的系统卷中,以文件名为
pagefile.sys
的隐藏文件形式存在。 - 「页面」文件包含系统很少使用的进程的信息。只有在需要时,Windows 才会从该文件中检索信息。
- 通过这种分页过程,可以节省 RAM 空间。
pagefile.sys 页面文件
但是,「分页」有一个不可忽视的缺点:在硬盘上进行连续的读写过程需要时间,会导致 Windows 变慢。而内存压缩技术通过压缩不经常使用的「页面」来解决这个缺点,而不是将它们写入磁盘。这样可以减少对磁盘的读写频率,以显著提高响应速度。
内存压缩为 Windows 进程提供了更多的 RAM 空间,使进程可以驻留在 RAM 中,并且能够允许更多的任务同时运行。
Windows 内存压缩原理概述
内存压缩的基本概念是:压缩当前未被任何系统进程或应用程序使用的内存页面,以释放主内存,供其他进程使用。这样可以减少系统在 RAM 和磁盘上的页面交换频率,以减少缓慢且占用资源的交换过程。
Windows 内存压缩示意图
RAM 的访问速度远快于磁盘,因此,内存压缩可以在不显著降低性能的情况下增加 RAM 可用空间:
- 当一个页面需要进行交换时,它首先会被压缩并存储在 RAM 中。
- 当再次需要时,该页面会被解压缩并返回,整个过程比将页面交换到磁盘要快得多。
简单来说就是:
RAM 速度 > 内存压缩(压缩和解压)速度 > 磁盘页面文件交换速度
Windows 内存压缩大小
- 与没有内存压缩功能的 Windows 版本相比,Windows 10 Version 1507 及更高版本 Windows 仅有大约 50% 的情况将交换页面写入磁盘。
- Windows 还能够利用 CPU 核心进行大量压缩和解压的读/写并行操作。
启用还是禁用 Windows 内存压缩
内存压缩可以提供显著的性能优势,减少 RAM 使用量并降低访问时间。对于 RAM 有限的 Windows 设备来说,这是一个很好的选择。然而,由于内存页面的压缩和解压过程有时需要大量的 CPU 资源,该功能也可能增加额外的系统开销。
尽管 Microsoft 不建议禁用 Windows 内存压缩功能,但这取决于硬件资源和用户偏好:
- 对于 RAM 有限的旧设备,内存压缩可以为更多应用程序和进程腾出 RAM 空间,但也需要考虑 CPU 性能和负载。
- 新一代的 CPU 可能会高效处理压缩/解压过程。然而,如果内存管理过程消耗了大量 CPU 资源,也可以考虑禁用内存压缩。
- 如果已经有足够的 RAM,但内存压缩导致设备出现性能问题,也可以选择禁用它。
- 在某些系统上,无论启用还是禁用内存压缩,性能上可能没有明显的差别。
如何启用或禁用 Windows 内存压缩
前文已经提到,Windows 11 和 10 默认启用了 Windows 内存压缩功能。但是,用户可以随时禁用或重新启用它。以下是操作步骤:
1在「开始」菜单中搜索 Powershell
– 并选择「以管理员身份运行」。
2要查看内存压缩的工作状态,请运行以下命令:
Get-MMAgent
查看 Windows 内存压缩状态
3可以运行以下命令启用或禁用内存压缩:
Disable-MMAgent -mc
禁用 Windows 内存压缩Enable-MMAgent -mc
启用 Windows 内存压缩
禁用和启动 Windows 内存压缩