Mason 询问了 the advantages of a 64-bit processor 。
嗯,一个明显的缺点是你必须移动更多的位。考虑到内存访问现在是一个严重的问题[1],为相当数量的操作移动两倍的内存并不是一件好事。
但是,这样做的效果有多糟糕,真的吗?什么弥补了它?或者我应该在 32 位机器上运行我所有的小应用程序?
我应该提到,我正在考虑,特别是在同一台机器上可以选择运行 32 位或 64 位的情况,因此在任何一种模式下,主内存的带宽都是相同的。
[1]:即使是在十五年前,就此而言。我记得早在谈论良好的缓存行为时,尤其是赢得所有基准测试的 Alpha CPU 有一个巨大的,当时 8 MB 的 L2 缓存。
最佳答案
大多数 64 位编程环境使用“LP64”模型,这意味着只有指针和 long int
变量(如果您是 C/C++ 程序员)是 64 位。整数 ( int
s) 保持 32 位,除非您处于“ILP64”模型中,这是相当罕见的。
我之所以提出它,是因为大多数 int
变量并未用于类似 size_t
的目的——也就是说,它们保持在 32 位可以轻松容纳的范围内。对于这种性质的变量,您永远无法分辨出差异。
如果您正在使用 > 4GB 的数据进行数值或数据密集型工作,则无论如何您都需要 64 位。如果你不是,你不会注意到差异,除非你习惯使用 long
s,而大多数人会使用 int
s。
关于performance - 64 位和内存带宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/960910/