是32位系统运行快还是64位系统快的分析说明
所以就拿这个问题作为标题了,该问题网上少见作答,主要是因为及到方面太多,从软件到硬件全部都有涉及,并且衡量的标准也比较模糊,天缘在这里斗胆就从软件到硬件归纳分析一下,错愕之处敬请指教。
插入回复部分搜索引擎过来的网友:32位和64位系统安装软件也是需要对应位数的,32位系统无法安装64软件,64位系统同样无法使用32位软件,部分具有兼容模式的软件深入到内部实际上还是需要位数对应的,具体可参考下面的32位和64位系统区别文章。
这里要感谢一下网友jexleven,他在天缘的《32位和64位CPU、操作系统的区别 + 判断、使用建议》一文中的问道,“在硬件相同的情况下(且硬件支持64位、内存2GB),32bit的OS用32bit的3DSMAX渲染速度 和 64bit的OS用64bit的3DSMAX渲染速度,哪个快?”及“游戏的载入速度呢?例如《鬼泣4》,例如《金刚狼》,例如《巫师》...”,这个问题 应该是很多网友都会遇到的。
这里有个重要的条件,就是硬件条件相同且都支持64位和内存足够,这是目前主流硬件的基本配置了。问题中的渲染一词在同等条件下仍然是程序运行速度的问题(需要排除依赖显卡的独立部分,因为在Windows 7上很多渲染工作已转交给GPU来完成),天缘下面的回答也必须要以这个为节点或条件。问题2的游戏载入速度同问题1中的渲染,还有个比较特殊的地方,就是还跟DIRECTX版本和驱动等相关,所以也必须规定软件条件必须相同,只有位上差异,故仍是哪个更快的问题。
一、计算机操作系统和软件角度
首先看操作系统和上层软件,无论64位OS还是64位软件都是必须按照64位格式进行编译,也就是默认的字长64位,运行 时,除了一些特殊的独立计算,比如位运算,其它非标准字长变量运行时都是需要进行转换的。32位也是一样,这一点还看不出来哪个优劣(只指速度),即使硬件条件相同,实际上还是有速度上的差异,那就看谁的格式转换最少,这就决定于应用程序的类型和设计方法了。
操作系统也是软件,我们再看一下编译后的文件大小,大家可以看一下 Windows 7 64位版安装文件大小就知道了,肯定要比32位要大,这里问题就来了,同样一个个文件(打个比方),32位可能是1M,而64位的可能就是2M,那么从硬盘上读取就存在时间差异。所以文件大是个劣势。
到这里就可以看出不同版本OS或软件实际运行效率几乎相当(实际上程序的差异主要就是在类型转换上),速度因素主要决定于硬件,下面就来看一下硬件因素有哪些。
二、计算机硬件角度
1、物理硬盘的运行时间,64位系统肯定会让物理硬盘花费更多的时间,如果是固态硬盘则可以解决这个问题,物理硬盘的设计理念决定谁也改变不了这个结果,多读数据就是要花费更多时间,而固态硬盘可以完全按照64位来设计存储位宽,寻址时间几乎不受影响;
2、 再看CPU,现在的CPU都是按照标准64位总线宽度设计的(据说Windows 8可能支持128,也说不准CPU总线宽度还要向上加),(早期的CPU还是采用兼容设计的,也就是“假”的64位,这个就不说了,越分析越复杂了)。内 部各种运算机制都是对64位有利的,也就是说,大家让它算32位数,CPU都是需要“打向”兼容模式处理的。所以,单从CPU角度考虑(不计可能集成的前 端总线影响),64位速度会略胜32位。
3、内存方面,内存颗粒芯片大都是按照8位设计BANK重组,尤其是早期的内存条,当然现在也有16、32位宽,今后肯定也会出现64位宽内存芯片。目前来讲对32位、64位影响都很小,如果非得要分出胜负,那么就选32位吧。
4、 再来看看CPU的前端总线,早期的并行总线无论对32位和64位影响都很小,因为是信号都是大家一起走(手拉手一起过桥),今后的CPU到北桥之间(注: 现在有INTEL CPU集成了北桥,只不过把串行总线拿到内部而已)几乎都将采用串行技术,同等速率下(假设内存无影响下),肯定是32位数据传送更快,排队过桥肯定人少 的更快过去。
5、除此之外,实际上除了北桥和CPU和内存,主板上就没什么东西了,主体PCI总线几乎都是并行的,显卡模块也是独立出的,影响很小。
三、总结:
1、纵观上述分析,所以在相同的硬件环境下,天缘这里需特别提到,这个环境必须要包含到硬盘或CPU的串行总线(原因是这两者影响最大,原因下面分析),64位的肯定没有32位快。
2、有意的人为设计出使用固态硬盘和全并行环境,那么两者理论速度相当,目前业界还没到这个水平和需求的时候。反之,也可以有意的人为设计出让32位运行慢,而64位运行快的系统。
2、64位系统和软件的重要优点不能不提,那就是更加精确、精细。jexleven的问题也出来结果了,那就是玩3D游戏,64位界面绝对要比32位界面更加漂亮,音质更好,还有一堆“更大"(内存更大、硬盘更大,理论上并行的东西支持也更多),试试便知。
3、以后如果使用固态硬盘或把普通硬盘的瓶颈问题解决,并且前端总线速度跟上去,那么64位系统运行速度将会有较大提升,与32位系统速度差距也会越来越小,当然了,使用专业的测试软件仍然是可以测试出差距的(架构可能调整,结果暂时也无法确定)。
天缘补充说明:
1、上文关于64位运行速度问题的分析,天缘做了检查和括号定语标注,但仍然有些地方不太严谨,天缘无法在这么短的篇章内一一详述,只希望大家从硬盘读取和写入、CPU的前端总线这两个最重要的差异点阅读,象征性的得到结论就可以了。
2、32位系统运行快是指普通应用角度全局考量的结果,并非表示每个程序都一定是32位比64位快。