我知道 x64 架构的一些明显优势(更高的可寻址 RAM 地址等)...但是:
- 如果我的程序没有真正需要在 native 64 位模式下运行怎么办。我还是应该移植它吗?
- 终止 32 位支持是否有任何可预见的截止日期?
- 我的应用程序会像原生 x64 代码一样运行得更快/更好/更安全吗?
最佳答案
x86-64 有点特殊——对于许多架构(例如 SPARC),为 64 位模式编译应用程序不会给它带来任何好处,除非它可以有利地使用超过 4GB 的内存。它所做的只是增加二进制文件的大小,如果它影响缓存行为,实际上会使代码变慢。
但是,x86-64 不仅为您提供了 64 位地址空间和 64 位整数寄存器 - 它还使通用寄存器的数量加倍,这在像 x86 这样的寄存器不足架构上只需重新编译即可显着提高性能。
它还让编译器假设存在许多扩展,例如 SSE 和 SSE2,这也可以显着改进代码优化。
另一个好处是 x86-64 增加了 PC 相对寻址,可以显着简化与位置无关的代码。
但是,如果应用程序对性能不敏感,那么这些都不是真正重要的。
关于c++ - 将 32 位 C++ 代码移植到 64 位 - 值得吗?为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479953/