7

在为 64 位系统开发时,是否有任何特定的软件工程师/计算机科学领域存在显着差异?我已经编码了大约 10 年,自从 64 位系统中断以来,我的代码一点也没改变。

单个编码员可以将哪些应用程序编码为副项目需要您使用 64 位技术?

4

4 回答 4

7

任何需要超过 4 GB 工作和程序内存的东西肯定都符合条件,因为这是 32 位系统可以直接寻址的最大内存量。

由于 64 位数字可以驻留在 CPU 寄存器中,因此需要这些大小的数字的计算会看到性能改进。

于 2009-08-07T02:45:51.887 回答
2

我们最近将一些内部使用的库移植到了 64 位。C 代码根本没有改变;我们只需要获取我们链接的第三方库的 64 位版本,并找出我们需要使用哪些新的编译器指令。最令人头疼的是找到 64 位版本的依赖项并重构我们的构建系统以同时处理 32 位和 64 位。

这并不是说其他​​软件不需要修改。例如,如果您打包数据以适应字边界,那么在为 64 位系统编程时,您现在可能倾向于以不同的方式打包数据。

于 2009-08-07T02:50:14.237 回答
2

除了地址空间或大计算之外,将字长加倍对底层的东西有更多的帮助,主要是对那些将要进行内核黑客或编写设备驱动程序的人来说。例如,假设您有来自网络连接的字节流,您必须处理它们。您现在可以一次将这些字节从主内存拉入 CPU 寄存器 8 而不是 4。但我认为您需要一个“64 位感知”字符串库来利用这一点。

有趣的是,在同一硬件(64 位机器)上从 32 位 SQL Server 升级到 64 位 SQL Server (2005) 时,我们确实观察到了性能提升。

于 2009-08-07T02:56:57.877 回答
0

如果您需要询问,您可能不会获得任何优势,因为您可能没有在代码中构建任何关于整数大小的假设。很少有用例,而且都是相当低级的,会看到任何加速。Bignums 和非常大的数字上的重整数运算会更快(如加密)。

于 2010-04-14T15:17:19.373 回答