虽然启动时或从休眠和待命模式恢复使用时的高水平性能无疑是您所希望的,但要明白的是,您的绝大部分用户体验是来自于您在 Windows XP 处于“平稳状态”时所获得的系统性能。
以下您将看到 Windows XP 在两个方面的性能改进:应用程序启动时间和资源管理。
应用程序启动
在 Windows XP 中,您可以更快地启动应用程序(速度提升幅度可达 50%),尤其对于那些在使用早期版本的 Windows 时需要很长时间的应用程序。原因之一是,Windows XP 使用了许多与它在为了获得更有效的快速启动时所采用的相同机制来简化了应用程序启动。
启动过程
应用程序启动时,它需要操作系统为新程序和程序代码以及要从磁盘中读入的数据查找足够的内存资源。Windows XP 会监视应用程序的每一次启动,因此它可以知道将需要多少内存以及所需的磁盘内容。这与实现快速启动和登录时所使用的机制相同。应用程序的启动速度通常取决于所需的 I/O 数量以及处理 I/O 的效率。
预测所需的 I/O 操作
在常规要求的分页中,会从磁盘的各个位置提取少量的文本或数据。如果 I/O 组织得较差,则可能因为磁盘查找和旋转而浪费大量的时间。Windows XP 通过监视每一次启动,可以准确地预测所需的 I/O 操作,并同时发出数以百计的请求。这些请求经过分类,因此不用进行另外的查找和旋转即可处理它们。由于所需的代码和数据都已经在内存中,因此应用程序不用等从磁盘传来下一个缺失的程序段即可启动。
应用程序启动中的文件访问模式可用于对磁盘文件的布局进行的定期优化。经过优化的布局可以缩短查找时间,从而提供更快的启动速度和重新使用速度。
资源管理
资源管理包括内存、CPU 和 I/O 管理,它是操作系统的主要任务之一。完善的资源管理--从而可避免大开销的或不必要的操作妨碍计算机的响应--是获得上佳性能的重要环节。Windows XP 建立在 Microsoft Windows NT? 内核之上,因此它所使用的许多资源管理方法都与以前版本的 Windows 一样。
以下是在这种强大的基础之上进行的改进:
空闲时间操作
Windows XP 通过利用空闲时间来执行系统操作,从而可较好地执行资源管理工作。Windows XP 对资源的管理方式是,只要您没有工作,系统就可以执行自己的任务,而不是依靠在您使用系统资源完成工作时启动的计时器。增强的空闲检测功能因此有助于您分享 Windows XP 的这种好处,而且系统操作在任何时候都不会影响您的工作。空闲时间的操作包括优化硬盘上的文件和目录布局。其它的系统清理和服务清理操作也可以在该时间内进行。
服务
Windows XP 提供了多种服务,它们能为您提供有价值的功能。例如,“系统恢复”为您提供了回滚出错的应用程序和驱动程序安装以及撤消对系统的破坏性操作的能力,而“帮助和支持”则简化了解决系统故障的过程。
当服务处于活动状态时,它们可能使用大量的系统资源,但它们对 Windows XP 性能的影响要小得多,例如与许多相同的服务对 Windows Me 的影响相比。这种服务性能方面的改进要归功于较好的实现,不管是在活动状态还是在不活动状态,它们都使用了更少的资源,而且会将它们的操作安排在计算机空闲时间段内执行。
自我调整
Windows XP 已经过调整,它可以更好地利用当前的硬件。在许多情况下,Windows XP 还可以调整自己,因此实现了更高水平的自我调整功能。这使得您可以用最低的管理开销获得更好的性能。
虽然 Windows XP 从 Windows 2000 继承了许多资源管理基础结构,但在某些方面,它实现了比以前版本的 Windows 更高的自我调整功能。例如:除了预先提取技术外,您还可以想一想 Windows XP 是如何设法根据各台计算机的性能来匹配用户界面中的可视化效果的。用户界面中有许多效果,比如动画、投影和菜单的淡入淡出等,如果这些效果在特定计算机上的显示速度不够快,就可能延长响应时间。为避免该问题,Windows XP 在安装过程中会评估系统的性能并对用户界面设置进行相应的调整。
正如此前在本文的应用程序启动部分所介绍的,Windows XP 的自我调整过程可以有效管理磁盘上的文件和目录布局,同时它还通过重新组织文件元数据的布局减小了内存的占用,从而使得该过程又深入了一步。这种布局优化的好处对于目前的大容量磁盘而言是显而易见的。
内存管理
Windows XP 与现代的大多数操作系统一样使用了虚拟内存。虚拟内存的创建方式是,通过在计算机硬盘上提供另外的空间,从而扩展分配给应用程序的物理内存。计算机会为应用程序分配一些内存,但其数量不一定非要足以满足该应用程序的每一次内存访问需要。此时,硬件将检测到某些访问,并会重新组织一些内存结构。通过正确地预测一组应用程序的使用模式,该操作系统可以算出为满足该组应用程序的内存要求而所需的物理和虚拟内存组合,从而允许计算机在物理内存极低的情况下也能运行。
这就好比杂技演员玩耍几个球。虽然杂技演员只有两只手,但他总能确保有一只手空着来接落下来的球。同时玩五个球的杂技演员不需要有五只手,同样,计算机也不必因为应用程序的每个兆字节访问而需要成兆的物理 RAM。
Windows XP 与 Windows 2000 一样,它们都会定期检查分配给特定应用程序的内存是否被实际使用,并保持对每个应用程序的评估,从而指出可以移走同时不会影响性能的内存量。可以根据需要随时使用预留的内存。如果这种预留的内存量下降得太多,则可以通过调整工作页面集予以补充。在确定应该从什么位置获得内存时,将使用这些评估值作为参考。
虚拟内存的开销
使用虚拟内存时会产生开销。当操作系统不能正确地预测应用程序的需求时,在前面提到的“小内存重新组织”中通常会包含少量与磁盘的双向 I/O 操作,而磁盘 I/O 操作的成本是比较高的。
通常,典型的台式计算机磁盘被限制在每秒执行 80 次随机 I/O 到 100 次随机 I/O。而对便携式计算机磁盘的限制通常会更严。内存管理中的每一个错误都会按照这些限制计数。如果产生了足够的错误,您会注意到将需要额外的时间。如果安装了更多的物理内存,则可以比较容易地避免这些错误;而物理内存较低时,这些错误将变得难以避免。
这些与虚拟内存有关的 I/O 通常是您将遇见的最大问题。因此,添加计算机内存通常是提高计算机性能的最简单、最有效的方式。
Windows XP 处理内存管理的方式
在以下的图 3 中显示了一些操作的虚拟内存使用情况(取自长时间运行在 Windows XP 中的工作载荷记录)。其中的工作负载包括办公应用程序和 Web 浏览。而操作则包括启动应用程序、保存和打印文档,以及打开文件和网页等。所显示的虚拟内存是保存操作中的所有代码和数据时可用的内存量,以及或多或少地被锁定在计算机内存中的所有内存资源。该虚拟内存被分为以下几个部分:
- 应用程序所占空间:该空间可能很小(对于几乎完全依赖于系统服务的操作,如打开网页),也可能较大(当应用程序启动并且必须对自己进行初始化时)。
- 驱动程序代码所占空间:该空间相当稳定,因为大多数的驱动程序代码会被锁定在内存中,或者会经常使用。
- 系统使用的分配和映射数据:这包括注册表数据、许多系统数据结构以及操作系统访问的文件。
- 系统自身使用的空间:这包括外壳和所有系统服务进程所使用的空间。
 图 3 从长时间记录中所选的25个操作的虚拟内存要求。
为 Windows XP 下的应用程序分配内存
在图 3 中演示的各个操作占用了从 20 MB 到 55 MB 不等的虚拟空间。分配物理内存映射该虚拟空间的操作是由操作系统完成的。64 MB 的 RAM 能轻松地满足各个操作的需要,但当您继续一个又一个操作时,一些内存内容将必须被替代。在工作载荷长时间运行的过程中,一共涉及到 256 MB 的不同页面。如果后续操作与它们所涉及的虚拟空间有大幅度的交叠,则每个新操作都仅要求极少的 I/O 或者根本不要求。
应用程序的切换可能导致较大程度地更改虚拟空间中的内容。在使用 64 MB 的 RAM 时,这可能要求大量的 I/O 操作。在使用 128 MB 的 RAM 时,由于有足够的备用空间,因此所需要的大部分虚拟内存仍将从物理内存提供。这样,在使用 128 MB 或更高的内存时,应用程序的切换速度也会快一些。
平衡内存资源
就像在此前的示例中所能看到的,应用程序或系统不存在任何独自的“内存要求”。如果物理内存缺乏,则在切换应用程序时,您将以频繁的 I/O 操作为代价;如果物理内存充足,系统会优先使用物理内存,从而阻止了这些 I/O 操作。
操作系统会不断地访问当前的状态,并选择要保留的页面和要清除的页面。因此,独自使用的页面数并不能代表所要求的内存量。在页面被单独占用时,人们对“正在使用的页面数”很容易产生误解。应用程序的工作页面集(即该应用程序在内存中的页面数)有时可能相当大,这只是因为此时不存在其它运行的应用程序对内存的竞争。相反,该工作页面集有时可能会相当小,这只是因为所有的物理内存资源几乎都被提供给其它应用程序了。
|