落岸天使论坛

 找回密码
 注册
搜索
论坛,不要冷落了陌生人新人注册后在此报道,奖励20羽毛:)严肃处理违规灌水行为及处罚办法
参与论坛宣传活动,获得积分勋章奖励知羽艺匠及其他模板资源下载珍惜你的ID 珍惜你的名誉
查看: 1662|回复: 1

[其他] 磁盘的碎片整理

[复制链接]
发表于 2012-2-4 21:25:01 | 显示全部楼层 |阅读模式
 如果你使用Windows XP操作系统,那么请注意磁盘碎片整理的问题。

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

  磁盘上的文件布局会强烈地影响I/O性能,严重碎片化的或散布在磁盘中的文件和目录会损害性能,虽然Windows 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:\Windows\Prefetch\会变得越来越庞大。

  4.一步的讨论

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

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

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

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

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

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

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

  微软的技术文档解释了EnablePrefetcher被赋予不同值的含义:
  0:取消预读取功能;
  1:只预读取应用程序;
  2:只预读取Windows系统文件。
  3:预读取Windows系统文件和应用程序,这是WindowsXP的默认值。

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

147

主题

1万

回帖

8987

积分

圣天使

Rank: 8Rank: 8

积分
8987

优秀会员奖

QQ
发表于 2012-2-4 23:12:57 | 显示全部楼层
早就不用这个了
强烈野心成就伟大梦想!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|Archiver|落岸天使论坛

GMT+8, 2024-12-26 02:20 , Processed in 0.106627 second(s), 24 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表