gpt4 book ai didi

performance - 提供软件的 64 位特定版本

转载 作者:行者123 更新时间:2023-12-02 21:52:20 26 4
gpt4 key购买 nike

通过将我的 native C++ 客户端和服务器构建为 64 位代码,我是否期望看到任何性能提升?

什么类型的应用程序可以从 64 位特定构建中受益?

我想象任何广泛使用 long 的东西都会受益,或者任何需要大量内存(即超过 2Gb)的应用程序,但我不确定还有什么。

最佳答案

Intel x64 与 x86 的架构优势

  • 更大的地址空间
  • 更丰富的寄存器集
  • 可以链接外部库或加载 64 位插件

x64 模式的架构缺点

  • 所有指针(以及许多指令)占用 2 倍的内存,在最坏的情况下将有效处理器缓存大小减半
  • 无法链接外部库或加载 32 位插件

在我编写的应用程序中,切换到 64 位时,有时会出现大幅加速 (30%),有时会出现大幅减速 (> 2 倍)。大幅加速发生在我受寄存器限制的数字处理/视频处理应用程序中。

在转换为 64 位时,我在自己的代码中看到的唯一严重的减速来自于大型指针追逐应用程序,其中一个编译器进行了一些非常糟糕的“优化”。另一个编译器生成的代码的性能差异可以忽略不计。

立即移植的好处

一旦您知道要注意什么,编写 64 位兼容的代码在 99% 的情况下并不那么难。大多数情况下,它归结为在引用内存地址时使用 size_t 和 ptrdiff_t 而不是 int (我假设这里是 C/C++ 代码)。将大量未编写为支持 64 位的代码转换可能会很痛苦。

即使为您的应用程序构建 64 位版本没有意义(可能没有意义),也值得花时间了解构建版本所需的内容,以便至少所有新代码 future 的重构将兼容 64 位。

关于performance - 提供软件的 64 位特定版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/324015/

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