如何开发以利用64位系统?

7

在软件工程/计算机科学的特定领域中,开发64位系统时是否存在明显差异?我已经编码约10年了,自从64位系统问世以来,我的代码没有改变过。

哪些单个程序员可以编写的应用程序需要使用64位技术?

4个回答

7

任何需要超过4GB的工作和程序内存的内容都可以被归为这一类,因为32位系统直接寻址的最大内存量就是4GB。

由于64位数字可以存储在CPU寄存器中,需要使用这些大小数字进行计算的情况将会看到性能提升。


2
我们最近将一些内部使用的库转换为64位。C代码并没有改变;我们只需要获取与第三方库链接的64位版本,并找出需要使用的新编译器指令。最大的问题是找到我们依赖项的64位版本,并重构我们的构建系统以处理32位和64位。
这并不意味着其他软件不需要修改。例如,如果你在程序中将数据打包以适应字边界,那么在为64位系统编程时可能会倾向于以不同的方式进行打包。

2
除了地址空间或大量计算外,将字长加倍对于低级别的东西更有帮助,特别是对于那些将要进行内核编写或设备驱动编写的人。例如,假设你有一个来自网络连接的字节流并且你必须处理它们。现在,你可以一次从主存储器中将这些字节拉入 CPU 寄存器中,每次 8 个而不是 4 个。但我认为你需要一个“64 位感知”的字符串库才能利用这一点。
据说,我们在相同硬件(64 位机器)上从 32 位 SQL Server 升级到 64 位 SQL Server(2005 版本)时观察到了性能提高。

0

如果你需要问,那么你可能不会得到任何优势,因为你可能没有在代码中构建任何关于整数大小的假设。很少有使用情况,而且所有情况都相当低级,将看到任何加速。对于非常大的数字,Bignums和重整数算术将更快(如加密)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接