网站地图    收藏   

主页 > 后端 > 网站安全 >

深入透彻了解磁盘的碎片整理 - Windows操作系统

来源:自学PHP网    时间:2015-04-17 18:33 作者: 阅读:

[导读] 如果你使用Windows XP操作系统,那么请注意磁盘碎片整理的问题。 1.为什么要需要整理碎片 磁盘上的文件布局会强烈地影响I/O性能,严重碎片化的或散布在磁盘中的文件和目录会损害性能...

如果你使用Windows XP操作系统,那么请注意磁盘碎片整理的问题。

  1.为什么要需要整理碎片  

  磁盘上的文件布局会强烈地影响I/O性能,严重碎片化的或散布在磁盘中的文件和目录会损害性能,虽然Windows XP会自动重定位某些文件来改善性能,但通常情况下,这并非属于系统必须的常规,而且通常情况下也仅包含磁盘上很小部分的文件。  

  从这方面来考虑,应该在系统安装结束后立即对磁盘进行完整的碎片整理。默认情况下,WindowsXP每隔3天就会执行一次局部碎片整理,并根据当天的使用情况调整文件在磁盘上的物理位置,所移动的文件将被写入Layout.ini文件,这是Windows XP认为应该按照这一顺序来安排文件在磁盘上的物理位置,该文件的路径在C:WindowsPrefetch。  

  系统在空闲时会自动整理磁盘碎片,此时会首先读取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:WindowsPrefetch目录下的文件全部删除,重新启动系统后仍旧会自动创建Layout.ini文件,届时3天1次的局部碎片自动整理功能会被重新激活。闪此正确的方法是用记事本打开Layout.ini文件,将其中的内容全部删除,并将这个文件设置为只读属性,这样Windows XP就无法激活局部碎片自动整理功能了,当然你也就不用担心C:WindowsPrefetch会变得越来越庞大。  

  4.一步的讨论  

  我们经常可以从网上看到关于修改注册表键值以提高Windows XP启动速度的技巧,这些技巧真的是有效的吗?下面,我们结合磁盘碎片整理的实例来进行深入一步的探讨:  

  问题一:C盘为什么无法进行碎片整理?  

  Windows XP系统,在对C盘进行碎片整理时,提示由于C:WindowsprefetchWMIPRVSE.EXE-28F301A9.PF文件损坏,扫描无法继续。  

  C:WindowsPrefetch是Windows XP的预读文件夹,Windows XP将频繁使用的数据存放在预读文件夹中,需要再次使用这些数据时可以大大加快读取速度,但随着时间的增长,这个文件夹的个头会变得越来越大,而且可能会存在一些死链文件,此时如果执行碎片整理,就有可能出现上面提到的错误,解决的办法是清空这个文件夹,然后整理碎片。

问题二:启动时也能整理碎片?  

  Windows XP可以在启动时进行碎片整理,使那些启动所必须的文件能够相邻排列,从而在下次启动时提高速度,不过该功能在默认设置下是被关闭了的。激活的办法是打开注册表编辑器,找到HKEY_LOCAL_MAHCINESOFTWAREDfrgBootOptimizeFunetion,双击右侧窗格中的Enable键,将键值由默认的“N”修改为“Y”即可。

  问题三:禁止预读取后能提高系统的启动速度吗?  

  网络上流传着1条关于提升Windsws XP启动速度的技巧,具体方法是通过修改注册表中HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters目录下EnablePrefeteher子键,将它的键值赋为“1”。这样可以减少预读取的文件,减少进度条等待时间,效果是进度条跑一圈就进入登录画面了。

  微软的技术文档解释了EnablePrefetcher被赋予不同值的含义:

  0:取消预读取功能;

  1:只预读取应用程序;

  2:只预读取Windows系统文件。

  3:预读取Windows系统文件和应用程序,这是WindowsXP的默认值。  

  虽然EnablePrefetcher键值设置为1后,的确可以减少预读取的文件,但系统初始化内核的工作是一个非常复杂的过程,此时需要加载很多底层的驱动程序、启动子系统以及相关的服务,即使是当我们看到了欢迎屏幕,也不能认为此时系统已经启动完成,因为系统会在后台继续初始化那些未完成的驱动程序的加载工作,虽然滚动条的动作次数较以前大大减少,但在显示欢迎屏幕之前的黑屏过程却反而有所增加,因此总的系统时间并未变化。

 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论