Chinaunix首页 | 论坛 | 博客
  • 博客访问: 609721
  • 博文数量: 765
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5005
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-16 18:49
文章分类

全部博文(765)

文章存档

2011年(1)

2008年(764)

我的朋友

分类:

2008-10-16 18:50:10


  如果你使用 XP操作系统,那么请注意磁盘碎片整理的问题。
  
  1.为什么要需要整理碎片
  
  磁盘上的文件布局会强烈地影响I/O性能,严重碎片化的或散布在磁盘中的文件和目录会损害性能,虽然 XP会自动重定位某些文件来改善性能,但通常情况下,这并非属于系统必须的常规,而且通常情况下也仅包含磁盘上很小部分的文件。
  
  从这方面来考虑,应该在系统安装结束后立即对磁盘进行完整的碎片整理。默认情况下,WindowsXP每隔3天就会执行一次局部碎片整理,并根据当天的使用情况调整文件在磁盘上的物理位置,所移动的文件将被写入Layout.ini文件,这是Windows XP认为应该按照这一顺序来安排文件在磁盘上的物理位置,该文件的路径在C:\Windows\Prefetch。
  
  系统在空闲时会自动整理磁盘碎片,此时会首先读取Layout.ini文件中的内容,并针对其中涉及的文件进行局部的碎片整理,这也是磁盘整理程序转移文件位置的依据。
  
  2.深入认识Prefetch目录
  
  在Windows XP及其以后的操作系统中,增加了预读取功能(也可以理解为“预先装载”),该功能可以提高系统的性能,加快系统的启动、文件读取的速度,这些预读文件保存在%systemroot%Prefetch目录中,以*.pf为扩展名,这些*.pf文件包括了载入文件的详细信息和载入顺序。
  
  每一个应用程序,包括Windows XP的启动过程,都会在PrefetCh目录下留下相应的预读取文件,预读取文件描述了应用程序或启动时各个模块的装载顺序,其命名方式是以应用程序的可执行文件的名字为基础,加上一个“-”和描述执行文件完整路径的十六进制值,再加上文件扩展名.pf,例如QQ.EX-0065A2A1.pf。
  
  每当用户启动一个程序,会自动在Prefetch目录中对应的*.pf文件中留下一条记录。不过,Windows XP启动的预读取文件总是同一个名称,即NTOSBOOT-B00DFAAD.PF,其中包含着启动时载入文件的记录。
  
  当下一次启动系统或运行某个程序时,Windows会参考相应的*.pf文件,将其中记录的所有文件载入内存,而不是象以往一项一项依指令逐个载入文件。另外,Windows会利用启动程序或程序的*.pf文件制订一个最优化的磁盘分配方案,这个方案的相关信息在Lyaout.ini文件中。
  
  3.不让系统自动整理磁盘碎片
  
  有时候,你可能会觉得局部碎片整理的功能非常无聊,因为磁盘的碎片整理也会对硬盘进行某种程度的操作。网上流传着关于通过修改注册表键值来禁用局部碎片整理的技巧,看似有理,但事实上,这些所谓技巧是完全无效的。
  
  事实上,你即使将C:\Windows\Prefetch目录下的文件全部删除,重新启动系统后仍旧会自动创建Layout.ini文件,届时3天1次的局部碎片自动整理功能会被重新激活。
  
  因此正确的方法是用记事本打开Layout.ini文件,将其中的内容全部删除,并将这个文件设置为只读属性,这样Windows XP就无法激活局部碎片自动整理功能了,当然你也就不用担心C:WindowsPrefetch会变得越来越庞大。
  
  4.进一步的讨论
  
  我们经常可以从网上看到关于修改注册表键值以提高Windows XP启动速度的技巧,这些技巧真的是有效的吗?下面,我们结合磁盘碎片整理的实例来进行深入一步的探讨:
  
  问题一:C盘为什么无法进行碎片整理?
  
  Windows XP系统,在对C盘进行碎片整理时,提示由于C:\Window\sprefetch\WMIPRVSE.EXE-28F301A9.PF文件损坏,扫描无法继续。
  
  C:WindowsPrefetch是Windows XP的预读文件夹,Windows XP将频繁使用的数据存放在预读文件夹中,需要再次使用这些数据时可以大大加快读取速度,但随着时间的增长,这个文件夹的个头会变得越来越大,而且可能会存在一些死链文件,此时如果执行碎片整理,就有可能出现上面提到的错误,解决的办法是清空这个文件夹,然后整理碎片。
  
  问题二:启动时也能整理碎片?
  
  Windows XP可以在启动时进行碎片整理,使那些启动所必须的文件能够相邻排列,从而在下次启动时提高速度,不过该功能在默认设置下是被关闭了的。激活的办法是打开注册表编辑器,找到HKEY_LOCAL_MAHCINESOFTWARED\frgBootOptimizeFunetion,双击右侧窗格中的Enable键,将键值由默认的“N”修改为“Y”即可。
  
  问题三:禁止预读取后能提高系统的启动速度吗?
  
  网络上流传着1条关于提升Windsws XP启动速度的技巧,具体方法是通过修改注册表中HKEY_LOCAL_MACHINESYSTEM\CurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters目录下EnablePrefeteher子键,将它的键值赋为“1”。这样可以减少预读取的文件,减少进度条等待时间,效果是进度条跑一圈就进入登录画面了。
  
  微软的技术文档解释了EnablePrefetcher被赋予不同值的含义:
  
  0:取消预读取功能;
  
  1:只预读取应用程序;
  
  2:只预读取Windows系统文件。
  
  3:预读取Windows系统文件和应用程序,这是WindowsXP的默认值。
  
  虽然EnablePrefetcher键值设置为1后,的确可以减少预读取的文件,但系统初始化内核的工作是一个非常复杂的过程,此时需要加载很多底层的驱动程序、启动子系统以及相关的服务,即使是当我们看到了欢迎屏幕,也不能认为此时系统已经启动完成,因为系统会在后台继续初始化那些未完成的驱动程序的加载工作,虽然滚动条的动作次数较以前大大减少,但在显示欢迎屏幕之前的黑屏过程却反而有所增加,因此总的系统时间并未变化。
【责编:admin】

--------------------next---------------------

阅读(202) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~