分类:
2008-10-16 18:49:49
windowsxp开机有一个进度条,会一遍一遍的跑,不少人认为只跑两圈就进去的就是开机速度快
网上出现过一种优化方式,修改注册表将所谓的“开机预读取”设置为“不预读”,则可以大大减少进度条“跑”的次数,但是这种“优化方法”出来不久,便有更多的文章指出这是“谬误”,还举出相当多的事例,或是试验,说明不预读并不能减少开机时间,大多的理由是进度条消失后的“黑屏时间”增加。
因为一直用的休眠,所以我一直也没怎么在意。前两天和别人谈到这个问题,我便好好研究一番。
结论是,其实关于这个问题,所谓设置为“不预读”的优化方法也并非谬误,而这个所谓的预读也并非没有用处,否则MS怎么也不会花人力物力弄这么个浪费开机时间的东西。
先说说什么是所谓的“预读取”。预读取分两种,一种是“系统文件预读”,一种是“应用程序预读”。具体的不去讨论,现在只讨论预读取对速度的影响。
我们都有经验,当第一次打开word的时候会等待比较长的时间,硬盘灯不停的在亮,但是关闭再次打开,word启动速度就快得多了。这个其实就是windows的预读取做的优化。windows预读取发现你带开了一个他的预读取数据库没有的应用程序时,他就会将这个应用程序中某些信息在内存中留下一个映象,下次打开这个程序就不用再去硬盘上找文件,能大大加块程序启动速度。
问题来了,内存中的映象重新启动之后就会消失,下次开机启动程序依然很慢,怎么办呢?这就需要“开机预读取”功能。会把使用频率较高的一些应用程序的信息记录下来,每次开机时,就完成一次对程序的预读取,从而大大加快应用程序的启动速度。
你大概已经猜到,那个“进度条”一遍一遍的跑的时候,windows就在进行开机预读取的工作。
因此,如果直接取消掉注册表中的“预读取功能”是一定会大大降低应用程序的启动速度的,当然开机速度会有一定的增加,不过这是得不偿失,因为没有了那一段必要的“系统文件预读取”,在进度条消失之后系统会从硬盘上去寻找大量的系统文件,反而影响启动速度,而且应用程序的启动速度也是一定会大大减慢的。其实比较好的优化办法是这样,找到“开机预读取”的信息,手动把不是很常用,不需要预读取的应用程序删除,尽量减少开机预读取的应用程序的数量,由此来加快启动速度!
位置在x:\windows\prefetch下面,命名是 exe文件名-16进制hash.exe
有一些实测数据,一台装了许多应用软件的电脑:
不作处理,开机29s,取消预读取,开机32s,删除prefetch文件夹下面大部分文件后,开机23s,有比较明显的开机速度提升,不过第一次运行应用程序的时候速度的确有所下降,并且prefetch文件夹下文件会自动生成,越来越多!