Windows7内存管理有何不同

  “Superfetch”并不是一个新的技术,在Vista时代就已经开始采用,不过鉴于用过Vista的人数比较少,而 XP时代的各种电脑技巧始终还深入人心,所以很多人都在疑问为何Windows7内存占用如此之大。

  Superfetch内存管理机制会将用户可能使用的应用程序页面利用内存可用空间进行预加载;尽可能地避免系统发生从硬盘的页面调用;让应用程序最快速度开启;不会由于计算机长时间闲置而使突然使用变得响应迟缓;在退出大型应用程序后会主动将之前被迫转移到虚拟内存中的页面重新调入内存当中。这样看起来似乎专业了点,所以接着往下看,会很好地对这些特点进行理解。

  为何第一次启动程序会感觉很慢?

  相信大家都有过类似的经历。当我开机后,第一次运行一个程序,就比如说是Word吧,可能需要5秒才能启动。当我关闭后再开,也许只用2秒。如果我不关闭,直接打开另外一个Word文件,那就更快了。这是什么原因造成的呢?

  小贴士:什么是工作集

  我们可以简单的将内存理解为“数据结构”+“工作集”的一个结合,简单的说,应用程序在运行过程中进程所占用内存中的工作空间就叫做工作集。

  当我们开机后,工作集里面没有Word这个员工(页面),他还在家(硬盘)里面。于是当我召唤他的时候,它才从家走到办公室(工作集)。这样的过程就叫做硬调页了,当然需要的时间长。而当我们关闭了 Word时候,他就被派往大厦的另一房间,我却马上再次召唤他,这时,另一个房间内的数据还没被清零,他便不用从家里走来,而是直接从数据结构里面引入就可以了。在不关闭这个程序Word的情况下,他也不用为其他程序让路的时候,它还存在于办公室(工作集)里面,召唤他的时候就会更快。这样的“无需从硬盘中重新调用数据,而是将数据结构中的页面重新挂载到工作集中”的过程,便叫做软调页了。大家都知道内存速度远远快于硬盘,所以“软调页”的使用就是第二次运行程序变得很快的原因了。

  Windows7内存占用大的原因

  现在我们知道了当内存中有所需程序页面的时候会使程序启动变得更快。而Windows7中的“Superfetch”已经具有了学习的功能,自从第一次使用Windows 7时,Superfetch就开始记录我们的使用习惯,将我们经常使用的程序的页面在开机后进行提前加载,那么当我们第一次开启程序的时候便可以获得像第二次开启一样的速度了。所以这些预加载的页面就会使得我们的内存占用变多。简单地说就是让所有程序操作在内存中进行,避免使用硬盘硬调页空间,这也就是为何感觉Windows7占用很大内存的原因。

  ● 查看预加载的内存

  而在XP时代,也许你也有过类似的经历:当开始使用一些程序后,由于有事便离开了。回来的时候却发现系统响应十分缓慢,特别糟糕。这是由于XP的内存管理模式效率非常低下。

Windows 7内存占用大的原因-Superfetch内存管理

  当我们离开后,程序都处于不使用状态。这时系统的一些后台程序,如磁盘整理、杀毒软件等程序就会“全速运行”,导致我们使用的一些程序页面不得不被挤到了硬盘虚拟内存中。可是当这些后台程序完成任务后,XP系统并不会把之前被挤到虚拟内存的页面导回内存里。于是在再次使用电脑时,系统才会手忙脚乱的进行临时调配,甚至是硬调页。导致程序响应极其迟缓。所以看上去XP的空闲内存很多,事实上都没起什么太大的作用。