gpt4 book ai didi

c++ - 性能 32 位与 64 位算术

转载 作者:IT老高 更新时间:2023-10-28 21:38:36 26 4
gpt4 key购买 nike

native 64 位 整数算术指令比它们的 32 位 计数器部件慢(在 x86_64 机器上使用 64 位操作系统)?

编辑:在当前的 CPU 上,例如 Intel Core2 Duo、i5/i7 等。

最佳答案

这取决于确切的 CPU 和操作。例如,在 64 位 Pentium IV 上,64 位寄存器的乘法运算要慢很多。 Core 2 及更高版本的 CPU 从头开始​​设计用于 64 位操作。

通常,即使是为 64 位平台编写的代码也使用 32 位变量,其中值适合它们。这主要不是因为算术更快(在现代 CPU 上,通常不是),而是因为它使用更少的内存和内存带宽。

如果这些整数是 32 位的,则包含十几个整数的结构的大小将是 64 位的一半。这意味着它需要一半的字节来存储,一半的缓存空间,等等。

64 位 native 寄存器和算术用于可能不适合 32 位的值。但主要的性能优势来自 x86_64 指令集中可用的额外通用寄存器。当然,还有 64 位指针带来的所有好处。

所以真正的答案是这并不重要。即使您使用 x86_64 模式,您仍然可以(并且通常这样做)仍然可以使用 32 位算术,并且您可以获得更大的指针和更通用的寄存器的好处。当您使用 64 位 native 操作时,这是因为您需要 64 位操作,并且您知道它们比使用多个 32 位操作伪造它要快——您唯一的选择。因此,32 位与 64 位寄存器的相对性能永远不应成为任何实现决策的决定因素。

关于c++ - 性能 32 位与 64 位算术,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8948918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com