32 位与 64 位系统的区别仅仅是识别内存大小不同而已吗?

从这个角度讲,我们面前的PC有很大一部分“计算潜能”都被浪费了。

32 位与 64 位系统的区别仅仅是识别内存大小不同而已吗?

该文于 2010-06-01 发表于我的人人网日志。当时偶然看到中关村在线论坛里针对 32 位 与 64 位系统的争论,关键在于性能上的差距。正好那段时间集中精力在写程序,于是顺便做了一个测试。以下为原文内容。


2位与64位的区别仅仅是识别内存大小不同而已吗?

借助办公室的电脑做了一个小实验。分别编译两个程序,代码完全相同,A是 32 位的,B是 64 位的。

实验用两台机器,配置完全相同,大致如下:

  • CPU:奔腾双核 E5200 2.5 GHz
  • 内存:DDR2-800 2G

编译好的程序在64位 window7 下运行情况如下图:

黄色圈出的是计算相同的内容,程序运行时间。32位的程序耗时 2.168秒;64 位耗时 1.731 秒。

64 位程序比 32 位快 1-1.731/2.168=0.201——大概20%。

有趣的是,这个 32 位的程序在 32 位的 windows XP 下耗时 2.10秒——某种程度上讲,32 位的程序在 64 位系统下会有稍微的性能损失,这一点与 LUCKY7 的说明一致[1]!

所以,如果有原生 64 位应用的话,64 位的系统可以发挥其最大的性能。目前市面主流的计算机都可以支持 64 位运算(酷睿系列的 CPU 都可以,其实从奔腾 D 开始就支持了)。从这个角度讲,我们面前的PC有很大一部分“计算潜能”都被浪费了。

附录:

[1] 【Windows 7全攻略】浅谈Windows 7 32位与64位之区别