yoy*_*768 3 performance x86 x86-64 32bit-64bit
我知道 64 位相对于 32 位的优势,但是除了兼容性之外,32 位应用程序相对于 64 位应用程序是否有任何优势可以使 32 位应用程序更快或更高效?
有一个很大的优点:32 位应用程序使用的内存显着减少(正是因为指针更小)。并非所有东西都是指针,例如字符串和数字不会改变其大小,因此有效差异不是 2x。我碰巧特别了解 JavaScript 引擎,对于相同的工作负载,64 位版本通常比同一引擎的 32 位版本多使用大约 50% 的内存。
V8 最近通过在 64 位版本中实现“指针压缩”解决了这个问题。理论上,任何 C/C++ 应用程序都可以做同样的事情,但这是一项巨大的工程工作。
也就是说,这通常不是不转向 64 位的理由,因为其他好处(更多的寄存器、更多的地址空间)通常胜过这个缺点。但这确实意味着,如果您的目标设备/机器内存小于 4GiB,并且内存消耗是一个问题,您可能希望坚持使用 32 位版本。
(根据我的经验,性能好坏参半:较小的代码和较小的数据意味着 32 位上的缓存利用率更高;OTOH 在 64 位上拥有更多、更宽的寄存器可以在那里保存指令。在极少数极端情况下,64 位应用程序可以同时处理两倍的数据;大多数时候差异只会在 1-5% 范围内,并且可以朝任一方向发展:有时32位构建确实比 64 位构建快一点-bit build;这实际上取决于应用程序正在做什么。)
| 归档时间: |
|
| 查看次数: |
2139 次 |
| 最近记录: |