EC 基准测试重复要运行数天。与之相比,每个 Xbench 周期只需一分钟左右就能完成,其中已包括多项测试,因此增加了中断对测试造成影响的可能性。一种解决办法是每个测试多次运行,以过滤掉发散的数据。
结果
首先看 SPEC 数据,你会注意到,当使用 L2超高速缓存时,相应会有一个始终如一的显著的性能改善;与未经优化 O0 例程相比,运行 O3 代码也有类似的显著改善。我们运行 G4 优化的SPEC 例程的唯一一个 powerpc 74xx 平台是 Mac Mini,与 O3 代码相比,其结果表示出意外的性能下降。速度没有提升并不让人惊讶;G3 与 G4 PowerPC CPU 之间的基本差别在于 G4 的 AltiVec,对此,苹果与 IBM 分别叫做 Velocity Engine 和 VMX,由 SIMD(单指令多数据)指令集支持。只有在 C 源码中发现明确的数组数据类型定义时,GCC 才会要求采用这个指令集。但猜想由G4 优化代码引起的性能下降的根本原因尚不清楚。
在SPEC下,Mac Mini 和 PowerBook 的数值几乎相同,略微的差异似乎源于每次运行的随
机变化,再次试验就可能产生相反的结果。两个系统的 CPU 都轻易地击败了 G4 Power Mac 中的 PowerPC 7450;G4 Power Mac 的 L3超高速缓存不足以补偿其较低的内核速度与 FSB 速度,以及较慢的超高速缓存与主内存速度。还要注意的是,打开 G4 Power Mac 中的第二个 CPU 只能获得微不足道的好处。由于我们运行 SPEC 基准测试是用“速度”,而不是“速率”模式,因此各个函数是顺序执行的,而不是并行的。能从第二个 CPU 获益的任何 SPEC 测试结果估计都是由于第二个CPU具有处理其他系统功能的能力,从而使第一个 CPU 专心致志地执行 SPEC 代码。
同样,当使能第二个 PowerPC 970FX CPU时,双G5 Power Mac的结果也只有些许改善。但在执行 CPU 优化的 SPEC 函数时,双 G5 Power Mac 的性能要比 G4 Power Mac 好得多。就算为 G5 量身定制的代码性能提高不多,但至少 G4 优化例程在 Mac Mini 上的性能下降得并不明显。
现在,把注意力转向 Xbench 数据。首先注意到的是它与 SPEC 数据的反差;在很多 Xbench 测试结果中,使能第二个 CPU 后,性能都会有显而易见的提升。大多数情况下,使能 L2 超高速缓存也能显著提高得分。SPEC 测试在 Mac Mini 中的 G4 CPU与 PowerBook 之间的差别不大,而 Xbench 数据则放大了这种差异,即使只针对 CPU 中心的得分。据估计,PowerBook 的 CPU 与内核逻辑为节能而作了仔细调整,而 Mac Mini 上的CPU与内核逻辑则针对速度而定制。你会注意到在Mac Mini中从 4200 rpm硬驱转换到 5400 rpm硬驱后,与硬驱相关的测试得分都有所上升。
但是,并非所有 Xbench 数据都是可以预测的。多数让人困惑的结果都与图形有关。在 Mac Mini 上,Quartz Graphics Test 的得分在采用L2超高速缓存使能的所有情况下都较高,但当系统内存超过 128 MB 时,配有 4200 rpm硬驱系统的测试结果也会增长。你可能会认为这种情况是由于图形加速器将系统内存用于帧缓冲,我们开始也是这种想法,但 ATI 的一位发言人确认 Radeon 9200 GPU(图形处理单元)有一个专用的 32MB 视频存储阵列。也许 128 MB 系统内存时的较差结果是由于系统中其他受 DRAM 影响的约束所产生的作用。一个明显的问题是,为什么几乎所有装有 5400 rpm硬驱的 Mac Mini 系统的 Quartz Graphics 得分都较低。5400 rpm硬驱系统的 OpenGL Graphics 测试结果也低于 4200 rpm硬驱系统,并且 5400 rpm硬驱系统的得分变化毫无规律,有一次,甚至在 L2 超高速缓存关闭情况下却得到较高分数。
一般当提高系统DRAM时,我们都会感到系统性能往往会有显著提升。但很遗憾,内存测试并没有将这种感觉量化。在装有 128 MB 内存时,无论是开机起动还是在应用程序间顺序切换,Mac Mini 都运行得拖泥带水(特别是装有 4200 rpm硬驱时),很慢。切换到 256 MB DIMM 后,两种情况都有明显改观;进一步增加到 512 MB 时,情况继续得到改善,尽管不如前一任明显。最后,将内存增加到 1GB DRAM 时,没有检测到明显改变,但对同时运行多个应用程序的重负载系统,512 M