相信很多朋友都在用单核的CPU在跑vista,常常会觉得CPU占用率高,甚至长时间停在100%!这是什么原因引起的呢?我们都知道Vista会占用许多内存,因为Vista会把太多的内容预读在了内存中。
Windows Vista开机之後会慢慢占更多内存。最终发现竟然是一个Vista的新功能:Superfetch。
Superfetch其实系windows xp里面prefetch的改良版,能力其实强了很多。
其实大家用windows xp开一个新应用程序时,windows xp会自动创建一个.pf档,.pf档会保存在硬盘内,而你下一次再开同一个应用程序时,速度会增快。
而Vista的superfetch能力更强,它会自动统计使用者的习惯,而且预测用户会何时开启某些应用程,将应用程的档案预先放入空置的内存空间内,而当你开始那个应用程时,速度会大大增快。
图
上图物理内存中的已缓存一项,就是Vista用来放置档的空间。
而当一名用家开了一个很大的应用程,如游戏、photoshop等等,windows Vista会自动减少已缓存的空间,将那些空间发还给应用程运行。整个过程是全自动,而在windows xp,空置的内存只是空置,系统不会好好利用,而Vista就好好改良了,善用多余的内存,提升系统反应,不是盲目占用内存。
Vista虽然会占用大多的内存,但这并不代表没有内存可用,如果你要用内存,它会调整出相应的内存给你。这就和XP有很大的区别了,事实上XP把内存空闲在那里实际上是一种浪费,比如1G内存的系统通常有500M左右都是常年空闲的。
由于Vista把内存都占用了,因此打开大程序的速度比XP慢。例如当我们打开photoshop时,XP可以直接加载到空闲的内存中,而Vista即使把内存让出来,也需要一些时间,所以我们就感觉Vista比xp慢。
但我们从另一个角度来看,Vista由于它可以利用内存来高缓存文件,所以在在高负载下的性能要比XP平衡!我们可以一边杀毒一边上网,而不觉得慢。此时虽然Vista会出现狂读硬盘的问题,硬盘灯一直亮,但系统没有一点延迟。也就是说Vista常用的数据比较多的依赖内存,而不像xp那样全部都依赖硬盘。
就是由于Vista适用于多任务、高负载的特性,比较适合于多线程系统使用,所以我们在用单核心的cpu时,往往会造成CPU占用率高,甚至长时间停在100%。
(来源:vista之家)