Ric*_*o M 6 c++ architecture performance 64-bit cpu-architecture
从开发人员的角度来看,我试图理解,64位系统的卖点是什么?
我知道可以使用更多寄存器,可以为进程分配更多内存,但我无法理解是什么让开发人员的生活变得更轻松.任何例子?
从性能的角度来看,如果一个程序运行在32位对64位上,会有什么好处吗?
干杯!
编辑:谢谢你的所有回复.我看到一些针对最终用户体验的对话,这很重要.我正在寻找更多可以挤出的建筑优势.
根据我的理解,看起来编译器 - 汇编程序链上的优化很多,而不是程序员可以调用的功能?
当你有64位的地址空间可以使用时,你可以采用某些设计,这些设计在地址空间较小的情况下非常困难.例如,一位朋友最近向我指出,线程堆栈的地址空间可能成为32位系统上数千个线程的问题.但是在64位系统上,这甚至不再是一个问题.这是开发人员的主要直接好处,可能会影响您编写程序的方式.无论机器有多少实际内存,都是如此.
由于可用的额外寄存器,我看到转换为64位的大多数程序都有性能改进.
具有64位地址可以抵消某些程序中的性能提升.额外的空间指针占用意味着他们需要更多的缓存,这为您的缓存留下了更少的空间用于其他事情.它们在传输到主存储器和从主存储器传输时占用更多的存储器总线带宽.
至少有一个项目建议在一种混合模式下重新编译Linux中的大多数程序,其中使用了所有额外的寄存器,但只使用了32位指针.我对如何实现这一点感兴趣,因为它消除了64位程序的一个性能劣势.
还有一个小的(但很重要的)程序和算法子集可以使用64位寄存器.例如,大多数SHA-3候选者被设计为利用在执行按位运算时一次操作64位数据的能力.
最后,由于CPU内部的数据路径现在是64位宽,这也意味着CPU内部有更多的带宽用于移动物体.但我希望这对在32位模式下运行的64位CPU也有好处.