64位和内存带宽

Cur*_*son 4 memory performance 64-bit bandwidth

梅森询问了64位处理器的优势.

嗯,一个明显的缺点是你必须移动更多的位.鉴于内存访问现在是一个严重的问题[1],为相当数量的操作移动两倍的内存可能不是一件好事.

但这种效果有多糟糕,真的吗?是什么弥补了它?或者我应该在32位计算机上运行所有小应用程序?

我应该提一下,我正在考虑,特别是在同一台机器上可以选择运行32位或64位的情况,因此在任一模式下,主存储器的带宽都是相同的.

[1]:甚至十五年前,就此而言.我记得很早就谈到好的缓存行为,特别是那些赢得所有基准测试的Alpha CPU在当时拥有8 MB的L2缓存.

use*_*368 9

你的应用程序是否应该是64位取决于它做什么样的计算.如果需要处理非常大的数据集,显然需要64位指针.如果没有,您需要知道您的应用程序是否花费相对更多的时间进行算术或内存访问.在x86-64上,通用寄存器不仅宽两倍,而且有两倍多,它们更"通用".这意味着64位代码可以具有更好的整数运算性能.但是,如果您的代码不需要额外的寄存器空间,由于提高了缓存效率,您可能会通过使用较小的指针和数据来获得更好的性能.如果您的应用程序由浮点运算控制,那么将其设置为32位可能没什么意义,因为大多数内存访问都是针对宽向量的,并且具有额外的SSE寄存器将有所帮助.