作者:电脑信息网日期:
返回目录:win7问题
1. 我们认为的Win7内存机制是这样的
当物理内存不够用,使用虚拟内存。当物理内存够用,就不会往硬盘上写东西。
2. 事实上,Win7的内存机制是这样的
物理内存大概有40%的部分叫做备用内存,官方的说法,这块备用内存是可用的,当内存不够的时候自动释放。
然后,事实上是,这块备用内存实际e68a84e8a2ade79fa5e98193338上是跟虚拟内存之间的swap。也就是说,实际上用于了虚拟内存的命中缓存,而你实际运行的程序用不了的。
这就是为什么8G物理内存的机器,开个虚拟机就能卡得不要不要的。
原因是两方面造成的:
a. 备用内存太大,仅作为命中缓存,导致实际可用的内存只有物理内存的一半,这样系统就会过早的使用虚拟内存。
b. 虚拟内存和备用内存之间的数据交互造成大量的IO读写。原本现在PC的瓶颈就在机械硬盘,还放着这么多物理内存不用,去读写机械硬盘。更有很多为微软洗地的,说虚拟内存不会造成PC缓慢。
3. 解决的办法是关掉备用内存
事实上,备用内存是无法完全关掉的,但是我们可以几乎把它关掉。
备用内存都是由一个叫做 superfetch的服务,关掉即可把备用内存由物理内存的40%左右,降低到几百M。
当然同时需要卸载的还有 intel 快速储存 驱动,这个在降低系统运行速度方面和seperfatch有异曲同工之妙。
下面三幅图是superfetch服务,禁用前和禁用后的内存占用比较。
说实话,备用百内存是不好修改的,之前也找过好多方法,但没用。。
本人做设计的,6G内存,但备用总要占掉3g~4g,一到导出大图就可用内存不足。
最近百度研究了好久,找到一个治标不治本,但是个人觉得度行之有效的方法,就是:用软件进行高内存消耗操作来挤这个备用内存。
---------------------------------------------
我的实际操作,本人6G内存,4G备用,我就打开Photoshop,新建一知个大文件大概在1.1G(这个不存在内存,而是道硬盘的暂存盘)然后专把画笔调到最大,在画布上一通猛图,很明显处理速度特慢,然后资源监视器上显示备用那块空间开始缩小,大概2分钟左右就从4G减少至1.3G,然后任务管理器结束PS进程,瞬间可用淡蓝色条就多了2.5G空间,备用就大概回一点到大属概1.5G的样子。
个人觉得这主意虽然馊了点,但挺有效。。
你内存越大,内存项目中每个部分就越大。你这部分比较大的话,就可以减少硬盘缓存的频率,有助于你提高运行速度的,不用担心,你内存比较大,用的就更多
内存放着不用是种浪费,所以Windows7在读取了数据后,并不急于释放内存空间,而是分为几块部分。
黄色部分其实是当前最活跃使用的内存,这部分内存由于正在使用,所以是不能释放给其他应用程序使用的,当Windows将其中的一些数据保存后才能释放,这部分空间越大,就可以减少往7a64e78988e69d83365硬盘里写信息的次数,所以Windows7会根据你的物理内存大小分配一个合理的大小给这部分。
此外,还有最近活跃部分,这部分可以占到总内存的40%-50%,这部分数据已经使用过了,实际是没用的,可以释放,但由于最近才使用过,所以再次使用的这部分数据的可能性最大,所以Windows暂时不释放这部分数据,而是先留着作为缓存,这样你再次需要读取这些数据时,速度会比从硬盘里读取快很多。
接着又不活跃部分,道理和上面的一样,区别是由于这里面的数据有一段时间不用了,再次用到的可能性低于上面,所以如果需要内存时,较上面那部分会优先使用这里的
还有空闲内存,空闲内存时还没有用于记录数据的内存,当应用程序需要使用内存时,会最优先使用这里的
最后是硬盘写入和Bios读取时使用的缓存,占用很小。
内容来自百度文库。