gpt4 book ai didi

performance - 64 位程序是否比 32 位版本更大更快?

转载 作者:行者123 更新时间:2023-12-03 05:15:48 25 4
gpt4 key购买 nike

我想我关注的是 x86,但我通常对从 32 位到 64 位的转变感兴趣。

从逻辑上讲,我可以看到,在某些情况下,常量和指针会更大,因此程序可能会更大。为了提高效率而在字边界上分配内存的愿望意味着分配之间有更多的空白。

我还听说 x86 上的 32 位模式在上下文切换时必须刷新其缓存,因为可能存在重叠的 4G 地址空间。

那么,64 位的真正好处是什么?

作为补充问题,128 位会更好吗?

编辑:

我刚刚编写了我的第一个 32/64 位程序。它创建 16 字节(32b 版本)或 32 字节(64b 版本)对象的链接列表/树,并向 stderr 进行大量打印 - 不是一个真正有用的程序,也不是典型的东西,但这是我的第一个。

尺寸:81128(32b) v 83672(64b) - 差别不大

速度:17s(32b) v 24s(64b) - 在 32 位操作系统 (OS-X 10.5.8) 上运行

更新:

我注意到正在开发一种新的混合 x32 ABI(应用程序二进制接口(interface)),它是 64b 但使用 32b 指针。对于某些测试,与 32b 或 64b 相比,它会产生更小的代码和更快的执行速度。

https://sites.google.com/site/x32abi/

最佳答案

与 x86 相比,我通常发现 x86-64 上的计算密集型代码的速度提高了 30%。这很可能是因为我们有 16 x 64 位通用寄存器和 16 x SSE 寄存器,而不是 8 x 32 位通用寄存器和 8 x SSE 寄存器。这是 x86-64 Linux 上的英特尔 ICC 编译器 (11.1) 的结果 - 当然,其他编译器(例如 gcc)或其他操作系统(例如 Windows)的结果可能会有所不同。

关于performance - 64 位程序是否比 32 位版本更大更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2378399/

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