在测试之前,我们先来看看俩测试,一共三个图:
Windows Vista Ultimate SP2 x86 VS x64:PCMark05
Windows Vista Ultimate SP2 x86 VS x64:PCMark Vantage 32bit
简而言之,上面的蓝条是32位Vista的成绩,下面的红条是64位Vista的成绩,很不幸,可以看到32位下的性能要比64位下的性能要好,我们必须得说,这个并不是操作系统的罪过,这个结果大部分是由一个部件——CPU来引起的,原因如下:
前端单元对比:Core、yonah、P4 |
我们使用的Core 2 Extreme属于Penryn微架构,或者说,传统的Core 2微架构,它具有的一项技术是Macro Fusion宏聚合:
这项技术可以将一些比较并跳转的分支x86指令集合(CMP+TEST/JCC)最终解码为单条uop(CMP+JCC),从而提升了解码器的带宽、降低执行指令数量,让系统运行效率更高。很不幸的是,Core 2的Macro Fusion并不支持64位模式——一直到Nehalem才提供了支持。简而言之,Core 2及之前的处理器都未对64位应用进行了最优化。AMD的处理器没有这个问题。
除了上面这个突出的一点之外,通常的64位计算会由于代码长度的略为增加而会略为降低解码器的输出效率,这些综合起来,就得到了上面的PCMark结果。当然,这个结果的产生还有另外一个原因,继续看下面的这个测试:
32位 vs 64位@64位应用环境,64位结果在下面
我们必须记起,最前面的测试都是基于32位的测试程序,而在64位环境下自然要采用64位的才好,上面在64位环境下进行的比较表明,64位系统搭配64位应用的性能表现是很不错的。实际上64位Vista下的PCMark Vantage x64比32位Vista下的PCMark Vantage x86性能要高。当前的处理器架构设计在进行64位应用确实会碰到解码器效率略微下降的现象,但是它的影响从比率来看是很低的,而64位环境下倍增的寄存器数量和更大的内存容量支持以及64位操作系统带来的更好的系统资源架构等等,带来的好处更大,并且也能良好地兼容32位应用。现在没有什么理由不使用64位系统了。
关于处理器微架构和64位计算的进阶内容,可以参看: