在x64机器上添加两个32位整数和两个64位整数需要相同的指令时间,不是吗?如果是这样,当我在x64 CPU内核中使用32位整数时,其他32位没有任何好处,是吗?我想在适合64位内核的最大可能数值范围内进行计算。 哪种数据类型最符合此标准?
我的候选人是:
答案 0 :(得分:4)
如果没有某种测量,你真的无法判断32位或64位计算是否会完全相同。理论上,您可以使用64位而不是32位通过ALU驱动两倍的位,您的应用程序的内存要求将会增加。算术运算通常在CPU上占用一个周期。访问CPU缓存之外的内存可能需要一百个周期,在使用64位数量时可能会导致大幅减速。
答案 1 :(得分:3)
m128i
N
只有在不使用SIMD单元的情况下,32位添加只需N
64位添加。
答案 2 :(得分:2)
根据定义,它是在编译的处理器上最有效的类型。这就是为什么int会改变每个处理器的大小。
< quote>“plain int具有执行环境体系结构建议的自然大小< / quote>
注意:任何代码都高度依赖于正在运行的操作系统。如果使用特定大小的int编译OS,那么为了保持兼容性,为OS构建的任何代码必须保持不变。因此,如果OS制造商保持32位int兼容性,则int的大小将保留为默认值32(即使64是相同的速度)。
希望随着时间的推移,操作系统制造商将更新那里提供真正的64位。