1. 我们认为的Win7内存机制是这样的
当物理内存不够用,使用虚拟内存。当物理内存够用,就不会往硬盘上写东西。
2. 事实上,Win7的内存机制是这样的
物理内存大概有40%的部分叫做备用内存,官方的说法,这块备用内存是可用的,当内存不够的时候自动释放。
然后,事实上是,这块备用内存实际上是跟虚拟内存之间的swap。也就是说,实际上用于了虚拟内存的命中缓存,而你实际运行的程序用不了的。
这就是为什么8G物理内存的机器,开个虚拟机就能卡得不要不要的。
原因是两方面造成的:
a. 备用内存太大,仅作为命中缓存,导致实际可用的内存只有物理内存的一半,这样系统就会过早的使用虚拟内存。
b. 虚拟内存和备用内存之间的数据交互造成大量的IO读写。原本现在PC的瓶颈就在机械硬盘,还放着这么多物理内存不用,去读写机械硬盘。更有很多为微软洗地的,说虚拟内存不会造成PC缓慢。
3. 解决的办法是关掉备用内存
事实上,备用内存是无法完全关掉的,但是我们可以几乎把它关掉。
备用内存都是由一个叫做 superfetch的服务,关掉即可把备用内存由物理内存的40%左右,降低到几百M。
当然同时需要卸载的还有 intel 快速储存 驱动,这个在降低系统运行速度方面和seperfatch有异曲同工之妙。
下面三幅图是superfetch服务,禁用前和禁用后的内存占用比较。
关掉后好像没啥效果啊。到底咋么搞。需要重启吗
追答关掉重启就可以了 那个就是备用内存的程序