`

Windows7内存管理机制Superfetch介绍

阅读更多

在了解Superfetch内存管理机制之前。我们要弄清楚一些概念。下面我就来讲解一下什么叫做“工作集”。

一、

首先,我们从内存讲起。我们可以简单的将内存理解为“数据结构”+“工作集”。也就是说,在内存这个大房子里面有两个房间,一个是“数据结构”房间,另一个是“工作集”房间。那么我们就开始讲什么是“工作集”房间。

我们可以将每一个程序的运行占用的内存当做一个员工,而这些员工要工作的话就必须要走进他们的办公室,然后才能开始工作,那么这些“办公室”就可以理解为工作集了。引用森木的话就是“简单的说,应用程序在运行过程中进程所占用的内存中的工作空间就叫做工作集”。

那工作集的作用是什么呢?就如我刚才说的,是各个员工办公的场 所,我们可以想象这些员工来自他们的“家”,也就是硬盘,工作集的作用就是让这些员工从家进入到大厦里(也就是内存里),也可以说,在这个大厦里,门口就 是工作集房间,员工进入了工作集才能进入大厦。再次引用森木的话就是“工作集的作用是为了应用程序在运行时将硬盘当中对应的文件引入物理内存中”。

可是我们知道,大厦不能只有工作集一个房间,所有的员工在这个房间里面占用的地方并不是整个大厦(内存)。而工作集房间的面积大小就要看你这个大厦有多大了。如果大一点的大厦工作集房间肯定大,那小的大厦这个房间自然就小了。我在前面也提到过,这个大厦还有一个房间,就是“数据结构”。

二、 物理内存的数据结构

在数据结构这个房间里,还分有五个小房间。他们分别是:

Free Page List 自由页面列表(房间)
Modified Page List已修改页面列表(房间)
Standby Page List备用页面列表(房间)
Zero Page List清零页面列表(房间)
Bad Page List坏损页面列表(房间)

那下面我就结合工作集的工作原理来一起讲解数据结构这个房间了。

三、 工作集的工作原理

举个例子说,开机后,我目前打开了一些程序,譬如有Word、IE、Media Player、QQ。
工作集的概念和作用



他们现在要工作了,就必须进入到他们的办公室(工作集)中。而这时,工作集这个房间刚刚好满员了。





先 来说说这些工作:Word我是写了一些字之后没有关闭;IE我根本没用过它;在这时,我现在又想打开一个新程序,Photoshop,于是考虑到工作集空 间告急,所以关闭了Media Player和QQ。而Photoshop真的需要工作集当中的页面给他让路。这时就要将员工分配到数据结构房间。而数据结构有五个小房间之多,该怎么处 理这些没用的员工呢?



原 来,五个房间中前四个小房间都是为了收纳这些员工准备的。首先,当我关闭了程序,那么这些员工就不工作了,当然就不在办公室(工作集)当中。这时,凡是关 闭了的程序的工作集页面就会被转到Free Page List房间里面。就好像刚才的Media和QQ一样。而我使用后(修改后)没有关闭的程序,就像Word的工作集页面就会被转入到Modified Page List房间里。最后,我连用都没用IE就转入到Standby Page List里面了。




对 于Free Page List中的页面大多都是我关闭程序后留下的无用数据。为了始终能接纳工作集房间排除的员工,便将要这些空间给进程使用。可是带有无用的页面和代码直接使 用的话就会造成错误。那么就要将这些无用数据用数字0代替。所以这些无用数据就会被挂载到Zero Page List房间中等待清零。当这个房间里面员工(无用数据)达到8个的时候,就会触发清零操作了。随后再分配给后面的使用。

四、 软调页和硬调页

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

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

在了解了一些基本的概念之后,我们就开始讲解vista的新内存管理机制“Superfetch”了。总的来说,Superfetch为我们带来了一下几点改进:


会将用户可能使用的应用程序页面利用内存可用空间进行预加载;
尽可能地避免系统发生从硬盘的页面调用;
让应用程序最快速度开启;
不会由于计算机长时间闲置而使突然使用变得响应迟缓;
在退出大型应用程序后会主动将之前***转移到虚拟内存中的页面重新调入内存当中;


一、进行程序页面预加载

其 实从上面的Word例子我们可以知道,当内存中有所需程序页面的时候会使程序启动变得更快。而Superfetch具有了学习的功能,自从第一次使用 windows 7时,Superfetch就开始记录我们的使用习惯,将我们经常使用的程序的页面在开机后进行提前加载,那么当我们第一次开启程序的时候便可以获得像第 二次开启一样的速度了。所以这些预加载的页面就会使得我们的内存占用变得多。

网 上有许多教程或是软件针对XP的内存使用进行优化。森木也提到说:“过去在windows XP的系统环境中往往普遍存在一个概念,系统空闲时可用内存空间越多越好”。而由于XP得内存管理机制并不是十分优秀,所以说即使优化地再好也无法良好的 利用大容量内存。反之,真正想获得快速的程序启动速度就必须确保内存中有用户使用程序的内存页面。(也就是说在正常范围内,7下面反倒内存占用越高越好 了)从而导致高内存使用,这也就是大家的一个误区了。

在Superfetch开机后进行预加载的时候,采用了vista中的低优先级,所以并不会对正常使用照成影响。当我们打开程序的时候就直接可以从内存中调用页面了。避免了硬调页,就会大大提升效率。

下面的话就是为已经使用7的用户说的了
由于Superfetch要在开机后进行预加载,所以建议大家不要关机。尽量使用“休眠”或“睡眠”,这样Superfetch的预加载内容就会保留。从而提高速度和效率。




二、积极的内存调配

在XP时代,也许你也有过类似的经历:当开始使用一些程序后,由于有事便离开了。回来的时候却发现系统响应十分缓慢,特别糟糕。这就是因为任意的后台调用。

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

而windows vista/7的Superfetch就非常聪明了。让这些后台程序执行完毕后,系统会立即进行内存调配。等待用户再次使用。

三、ReadyBoost 的使用

很多从XP升上来的用户由于系统的内存不够大,所以无法全面的发挥Superfetch的功能。从vista开始,微软新的ReadyBoost功能就可以帮我们解决这个难题。

只要符合条件的闪存都可以加速我们的系统。ReadyBoost功能是利用闪存的容量作为Superfetch预加载页面的储存空间。但由于微软采用了特殊的算法,所以并不会影响闪存的寿命。还有,用于ReadyBoost的闪存最好为物理内存大小1~2.5倍。如果系统物理内存足够大的话,就没有必要使用ReadyBoost了。在此我也不多写了,有兴趣的朋友可以去网上寻找更加全面的信息。

以上的一些内容一些是引用书中的话并进行通俗的翻译和一些精简写出来的。不过当然也有我的原话。通过对Superfetch的了解,希望更多的朋友进入使用windows7的队伍中来。其实,7和XP同为windows,不同又能到哪里呢?不习惯也就是一时的。毕竟,经过了vista的磨练,7会变得更成熟。此贴也同时献给和我一样热爱7的人们。



QUOTE

http://bbs.crsky.com/read.php?tid=1760744


分享到:
评论

相关推荐

    win7内存优化

    虽然Windows 7系统有自己的内存管理机制来减少碎片,但第三方工具可以提供更深度的内存整理。 4. **关闭不必要的后台进程**:很多程序会在后台运行,占用内存资源。通过任务管理器,用户可以查看并结束这些不必要的...

    windows内存学习总结

    以下是对Windows内存管理的深入解析: 一、内存分配 1. **基本概念**:内存是计算机用来存储数据和程序的地方,分为物理内存和虚拟内存。物理内存即RAM(随机存取存储器),是硬件层面的内存;虚拟内存则是硬盘上...

    windows内存整理

    内存管理是操作系统的重要组成部分,Windows系统本身就包含了一些内置的内存管理机制。例如,虚拟内存技术将硬盘的一部分用作临时内存,以缓解物理RAM的压力。此外,Windows还有一项名为SuperFetch的服务,它会预...

    Windows 7 Accelorators

    本文将深入探讨其中的关键功能——Windows SuperFetch、Windows ReadyBoot、Windows ReadyBoost以及Windows ReadyDrive,并分析它们如何在Windows 7操作系统中发挥作用。 #### Windows SuperFetch ##### 内存管理...

    win7系统盘清理技巧

    Superfetch是Windows 7中的一个技术,它预先加载常用应用程序以提高系统响应速度。要清理Superfetch缓存,只需删除`c:\windows\prefetch`文件夹内的所有文件。 4、应用程序临时文件: 这些文件通常位于`windows\...

    MemEmpty

    在计算机操作系统中,内存管理是一项至关重要的任务,尤其是在资源需求日益增长的今天。Windows Vista作为微软推出的一款操作系统,虽然已经有些年代,但仍有大量的用户在使用。在Vista系统中,由于其内核特性和资源...

    了解 Windows Vista 内核 内核最新的更改

    除此之外,Vista内核还包含了其他重要改进,例如内存管理的强化、启动和关闭过程的优化、可靠性与恢复能力的提升以及安全性的增强。例如,Vista引入了SuperFetch技术,预加载常用应用程序以减少启动时间和提高系统...

    Windows-XP-Prefetch-Clean-And-Control

    现代Windows版本如Windows 7及更高版本也采用了类似的技术,如SuperFetch,它们的工作原理与Prefetch相似,但更进阶且智能,能够更好地适应多任务环境和动态内存管理。 总的来说,这个压缩包文件为Windows XP用户...

    固态硬盘在XP系统下运行出现假死故障怎么解决.docx

    SuperFetch是一种内存管理技术,用于预测并预加载用户可能需要的程序,以减少硬盘的访问时间。在固态硬盘上,由于读取速度极快,这种预加载可能导致不必要的资源占用。ReadyBoost则利用USB闪存驱动器或额外的内存来...

    C盘空间减少解决方案

    虚拟内存是Windows用来扩展物理内存的一种机制,其大小默认设置为物理内存的1.5倍。对于内存较小的机器,保留虚拟内存是必要的。但对于拥有2GB或更多内存的电脑,关闭虚拟内存可以释放C盘空间,并可能提高系统性能。...

    微软Vista开发团队告诉你鲜为人知的技术内幕

    这项技术的背后是复杂的算法和对内存管理机制的优化。 4. ReadyBoost:Vista还允许用户使用USB闪存驱动器作为额外的内存资源,这就是ReadyBoost。这一创新使用户能利用外设提升系统性能,尤其对于内存较小的计算机...

    磁盘清理教程

    这主要是因为系统内部的一些机制,如休眠文件、虚拟内存文件、系统缓存等占用了一定的空间。 3. **休眠文件hiberfil.sys的清理** - **文件介绍**:这是一个隐藏的系统文件,用于存储计算机休眠时的所有内存信息...

    安装好Win8后必做的优化

    Superfetch是Windows的一项预加载技术,用于预测用户将要使用的应用程序并提前加载到内存中。然而,对于固态硬盘(SSD)用户而言,这项技术的收益不大,甚至可能导致磁盘读写频繁,影响SSD寿命。可以通过服务管理...

    Hacking Windows® XP

    - **内存分配优化技巧**:如调整页面文件大小、启用Superfetch服务等。 - **多任务管理策略**:实现应用程序间的高效切换。 ##### 第11章:加速您的电脑 - **知识点**: - **磁盘碎片整理**:提高数据访问速度。...

    Evolution of Vista Kernel

    - **超级fetch技术**:Vista通过预测和预加载经常使用的页面来优化内存管理,提高系统响应速度。 - **Aero界面**:Vista引入了Aero特效,这需要内核级别的图形加速支持,对图形子系统进行了大幅度优化。 3. **...

    win7 ssd 优化

    在“服务”管理工具中,找到Superfetch服务并将其设置为“禁用”。 4. **调整电源管理设置**:SSD在低功耗模式下可能无法达到最高性能。在“控制面板”->“电源选项”中,选择“高性能”模式或自定义电源计划,确保...

Global site tag (gtag.js) - Google Analytics