王朝百科
分享
 
 
 

SuperFetch

王朝百科·作者佚名  2010-04-13  
宽屏版  字体: |||超大  

Vista下面的Superfetch技术,即“超级预读取”,由XP系统中的Prefetch进化而来。

下面,先说什么是Prefetch:

在Windows XP操作系统中,微软对虚拟内存技术做了进一步改进,发展出了预取技术(Prefetch),预取技术的基本思路是,在载入某个程序之前,预先从硬盘上中载入一部分该程序运行所需的数据到物理内存中,这样便能加快程序的启动速度。

在Widows XP中,使用预取技术的具体方法是:在系统和应用程序启动时,监视内存页面与交换文件以及硬盘上其它文件的数据交换状况,当发生数据交换时,Windows XP会纪录下每一个程序运行时经常需要读取的硬盘文件,并将读取的情况记录在windowsPrefetch目录中的pf后缀名文件中。

一旦建立了这些pf文件,在每次需要启动系统或相应程序的时候,Windows会首先中断当前准备载入的程序,而转去查找WindowsPrefetch目录,看是否有当前载入程序的纪录,如果有纪录,则马上按照纪录的情况载入程序运行过程中可能会用到的所需文件到物理内存中。这项任务完成之后,Windows才继续载入被中断的程序。

经过这样的处理之后,在程序运行过程中,需要读取那些文件时,由于文件已经被“预取”到内存中,此时就不用再到硬盘上进行读取,因此减轻了程序载入过程中频繁交换内存页面与交换文件的现象,改善了内存不足时程序运行的响应速度。

为了进一步优化预取操作的效率,Windows XP还会定期对pf文件进行分析处理,组织好程序文件载入的顺序,并将这些分析处理后的信息存放在WindowsPrefetch目录中的Layout.ini文件中。同时还会通知磁盘碎片整理程序,在下次运行碎片整理时,按照Layout.ini文件记录的内容,将相关文件的位置整理在连续的硬盘区块中。

这项技术从根本上说仍然属于被动式的调度。换句话说,只有在程序主动发起载入请求时,Windows才会进行相关的调度操作。

被动式调度的存在可能对系统性能造成一些影响。我们考虑这样一个例子,假设你有在工作的午休时间运行杀毒软件的习惯,那么在下班前,一般会停止处理工作程序,然后运行杀毒软件,此时,如果使用的是Windows XP,那么操作系统会将工作程序所占用的内存页面写入硬盘交换文件中,并读取杀毒软件的文件载入内存。午休过后,杀毒软件已经运行完毕,但是你在重新开始使用工作程序的时候,系统仍然需要经历杀毒软件和工作程序的硬盘交换文件与内存页面的交换过程,此时程序的响应速度明显降低。

如果系统能够进一步自动记录下这些经常性的操作行为所发生和结束的时间,当时运行的前台和后台软件等等详细情况,那么在内存有空闲空间的时候,就可以在预定的时机预先将一部分文件载入到内存中,这样就避免了上面例子中发生的不愉快情况。

什么是Superfetch:

不错,这正是Windows Vista中Superfetch技术所能解决的问题。由于采用了新算法,Superfetch不但继承了Windows XP预取技术的全部优点,还进一步具备监视程序运行时状况,时间等详细情况的功能,可以根据用户的使用习惯,自动预先将存放在硬盘的交换文件转换到内存页面中去,使用户经常运行的程序启动时的速度得到进一步的加快。

Superfetch技术的中心思想是:“过分空余的内存空间即是浪费”。的确,如果一个操作系统总是保留着过多的空余物理内存耗费电能,却不能够利用这些多余的内存空间提高系统性能的话,为什么不更好地利用这些多余的内存空间呢?将这些多余的物理内存作为缓存使用,就是Superfetch技术的本质。而也正是由于采用了这种以内存为缓存的策略,才造成了Vista对内存容量的饥渴!

如果你对这项技术感到反感,或者物理内存容量实在太小,那么到管理工具—服务中关闭Superfetch服务也是一种选择。但需要注意的是,如果再次开启Supertech服务,那么由于需要经过一段监视记录用户使用习惯的过程,因此需要等待较长一段时间后,Superfetch技术才能重新为系统带来明显的提速效果。

打开2008的Superfetch

首先:SuperFetch的目的是提升前台进程的性能,预取前台进程的内容。而Windows Server 2008主要目的是用作服务器,几乎很少有前台进程,所以没有采用SuperFetch技术。然而可以打开:

打开注册表编辑器找到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters 这个注册表项

新建 DWORD 项 名称为 EnablePrefetcher 数值为 3

新建 DWORD 项 名称为 EnableSuperfetch 数值为 3

打开 服务 ,将SuperFetch设为 自动 可以立刻启动成功

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有