1.9 用基准程序对计算机进行性能评估

1.9 用基准程序对计算机进行性能评估

计算机的性能不好评价,因为不同的角色对计算机的性能定义不同。如计算机用户认为计算机的性能好就是计算机速度快,关心的是响应时间(即从事件开始到结束之间的时间),而管理员关心的是计算机在一段时间里完成的任务的多少(流量)。而无论是流量还是响应时间,都是以时间来衡量的,它们的相同点是都认为能够以最短时间完成指定任务的计算机最快;不同点是响应时间是针对单任务,而流量针对多任务。

那么性能与程序的执行时间有关,用什么程序来测试呢? 如果用户都使用计算机来完成某种特定应用,那么这组应用程序就是评估计算机系统性能的最佳测试程序。用户只需要比较在不同系统中这组应用程序的响应时间,就可以知道哪台计算机系统的性能更优。但是这种情况很少见。通常需要依靠其他测试程序来获得计算机的性能。

基准程序是进行计算机性能评测的一种重要工具,基准程序是专门用来进行性能评价的一组程序,能够很好地反映计算机在运行实际负载时的性能,可以通过在不同的计算机上运行相同的基准程序来比较不同计算机上的运行时间,从而评测其性能。基准程序通常是选择一组各个方面都具有代表性的测试程序,组成一个通用测试程序集合。这种测试程序集合称为测试程序组件,其最大的优点是避免了各独立测试程序存在的片面性,尽可能全面地测试一个计算机系统的性能。

目前SPEC测试程序集是应用最广泛,也是最全面的性能评测基准程序集。1988年,由SUN、MIPS、HP、Apollo、DEC五家公司联合提出了SPEC 标准。它包括一组标准的测试程序、标准输入和测试报告。测试程序是一些实际的程序,包括系统调用、I/O 等。最初提出的基准程序集分为两类:整数测试程序集SPECint和浮点测试程序集SPECfp,后来分成为按不同性能测试用的基准程序集:如CPU 性能测试集(SPEC CPU2000)、Web服务器性能测试集(SPECweb99)等。

一般用户是采用基准程序来评测不同计算机的性能,而计算机设计人员在采用基准程序评测系统性能的同时,会进行分析并改进计算机组件以提高计算机性能,最著名的是Amdahl(阿姆达尔)定律。该定律于1967年由IBM360系列机的主要设计者阿姆达尔首先提出。该定律是指:系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。阿姆达尔定律实际上定义了采取增强(加速)某部分功能处理的措施后可获得的性能改进或执行时间的加速比。

使用基准程序进行计算机性能评测也存在一些缺陷,因为基准程序的性能可能与某一小段短代码密切相关,而计算机系统设计人员可能会对这一小段短代码进行特殊优化,使得执行这段代码的速度非常快,以至于性能评测结果不够准确。例如,Intel Pentium 处理器运行SPECint时用了公司内部的特殊编译器,使其性能评测结果很高。而用户实际使用的只是普通编译器,达不到评测的性能。