2024年3月23日发(作者:)

系统预读相关

为了提高系统的性能,加快系统的启动、文件读取的速度,Windows XP/Server 2003

中增加了预读取功能。Windows XP/Server 2003系统盘下的WindowsPrefetch文件

夹,就是预读取所在的文件夹,且在Prefetch文件夹中有许多以PF为扩展名的文件,这

就是系统生成的预读取文件。但是这个功能如果用不好,时间一长,会生成大量的预读取

文件, 占用宝贵的硬盘空间,导致系统搜索花费的时间更长,加重系统搜索的负担,使系

统运行速度变慢。因此,只有管好、用好这些预读取文件,才能始终保持系统性能最佳化,

让系统跑得更快、更顺畅。

Prefetch

Windows Vista的SuperFetch构建在由Windows XP引入的被称为Prefetch的技

术之上,所以在了解SuperFetch和EMD之前,最好让我们先谈谈它。首先,预取是操作

系统实际需要之前,从磁盘向内存中导入关键数据和代码段的进程。记住了这一点,让我

们大致了解预取是如何工作的。

为了让整个预取操作切实地提高性能,Windows XP缓存管理器在系统启动过程中以

及在各种应用程序被导入的时候,监视数据在磁盘和RAM之间以及在RAM和虚拟内存

之间的移动。当缓存管理器监视这些事件时,它构造目录和每个应用程序或进程引用的所

有文件的映射。这些映射被保存到WindowsPrefetch文件夹扩展名为.pf的文件中。

在这些映射文件被创建之后,缓存管理器将在系统启动以及导入应用程序的时候使用

它们以提高效率。更明确地,缓存管理器会拦截将被导入的每一个进程或应用程序并且查

看WindowsPrefetch文件夹以确定是否存在相应的映射。如果存在,缓存管理器将指派

文件系统立即访问映射中的目录或文件引用。然后缓存管理器将警告内存管理器并告诉它

使用映射文件中的信息向内存中导入数据或代码。当这个预取操作完成之后,缓存管理器

将允许应用程序或进程继续导入。在应用程序或进程这样做的过程中,它会发现需要的大

部分文件和数据已经存在于内存中,因此减少了磁盘访问量并且使得应用程序或进程导入

或响应得更迅速。

为了进一步提高这个预取操作的效率,Windows XP会定期地分析映射文件的内容,

编辑一个目录和文件列表,以导入的顺序组织它们,并且将这些信息保存在

WindowsPrefetch文件夹的名为的文件中。然后它会安排磁盘碎片整理程序

定期运行并且使用文件中的信息以重新部署所有目录文件,让它们排列在磁盘

中临近的区域。

SuperFetch

既然你知道了Windows XP的Prefetch技术是如何工作的,你就了解了Windows

Vista的SuperFetch技术工作原理的70%。作为Windows XP的Prefetch的下一版本,

SuperFetch包括了Prefetch的所有功能并做的更多。

首先,SuperFetch克服了Windows XP的Prefetch中的一个大缺点。正如我前面解

释的,Prefetch通过导入大部分由内存中一个应用程序或进程需要的文件或数据,所以可

以在需要时更迅速地访问它们。然而,由于这些文件和数据存在于内存中,所以它们受控

制虚拟内存的规则支配。换句话说,当其他应用程序需要访问内存,任何预取的数据会被

移出到硬盘上的页面文件中。当再次需要它时,必须将它从页面文件中移回到内存,这当

然抵消了性能增强。