Windows 实际压缩的是什么,为什么
当物理内存吃紧时,内存管理器对那些许久没人碰过的页面有两个选择:写到磁盘上的 pagefile.sys,或者压缩后放进内存中一块专用区域。在普通机器上压缩稳赢:从内存解压一页只要微秒级,从磁盘读回来则是毫秒级——千倍的差距,应用程序每次再碰这些数据都要再付一次。典型页面能压到原来的一半左右,所以 4 GB 冷数据只需要约 2 GB 内存。
在任务管理器 → 性能 → 内存里,你能从“已压缩”的数字看到它的工作;Memory Compression 进程(Windows 10 里显示为“系统和压缩内存”)就是替应用程序打包的系统工人。PowerShell 里的 Get-MMAgent 能确认该功能在你的机器上是否启用。最大的受益者是 8 GB 笔记本和一切从机械硬盘运行的系统——在那里,每省掉一次页面读取都是实打实的收益。
- 冷页面被压进内存中的专用存储区,而不是落到磁盘
- 典型压缩比约为 2:1——4 GB 冷数据只占约 2 GB
- 任务管理器在“内存”下显示为已压缩;Get-MMAgent 在 PowerShell 中报告该标志
- Memory Compression 进程是带签名的 Windows 工人,不是病毒
- 赢家是内存小的笔记本和一切机械硬盘系统——转盘上的页面文件很残酷
为什么禁用它会让事情更糟
“关闭内存压缩”的建议和当年“清理你的内存”的偏方一样流传甚广,失败的方式也一样:Disable-MMAgent -mc 会移除压缩存储区,被逐出的页面便直奔页面文件。在一台 8 GB、开着三十个标签页浏览器的机器上,这意味着原本微秒级解压的地方变成持续不断的磁盘读取。空闲内存在小工具里看着更漂亮;输的是应用程序。
诚实的例外很窄。跑着固定且经过测量负载的服务器,可能在弱核心上因压缩损耗一点吞吐;某些虚拟化方案会自行管理客户机内存。在台式机和笔记本上——包括内存充裕的游戏机——默认值就是对的:保持开启;如果起疑,先用任务管理器和 Get-MMAgent 测量,再去扳那个之后你得给出理由的开关。
常见问题与解答
Windows 里该禁用内存压缩吗?
不该——在普通台式机或笔记本上,它拿走的是内存全满与磁盘换页之间的缓冲,冷页面会落到页面文件里。保持开启;好奇的话,用任务管理器和 Get-MMAgent 测一测。
任务管理器里的 Memory Compression 进程是什么?
它是 Windows 内置的工人,把被逐出的页面打包进压缩存储区。它是带签名的系统进程;内存压力巨大时它占点 CPU,正是在干本职工作。
联系我们: [email protected]