如何开发利用64位系统?

时间:2022-03-23 23:11:37

Is there any specific sectors of Software Engineer/Computer Science where there's a marked difference when developing for 64 bit systems? I've been coding for around 10 years now, and since the break of 64 bit systems, my code hasn't changed one bit.

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

What applications that a single coder can code as a side project require you to use 64 bit technology?

单个编码器可以作为辅助项目编写哪些应用程序需要您使用64位技术?

4 个解决方案

#1


7  

Anything that requires more than 4 GB of working and program memory would certainly qualify, since that is the maximum amount of memory that a 32 bit system can address directly.

任何需要4 GB以上工作和程序存储器的东西肯定都有资格,因为这是32位系统可以直接处理的最大内存量。

Since 64 bit numbers can reside in the CPU registers, calculations requiring numbers of these sizes would see a performance improvement.

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

#2


2  

Aside from address space or big calculations, doubling your word size helps more in the low level stuff, and mostly for people who are going to be doing kernel hacking or writing device drivers. For instance, let's say you have a stream of bytes from a network connection and you have to process them. You can now pull those bytes in from main memory to CPU registers 8 at a time rather than 4. But I would think you need a "64 bit aware" string library to take advantage of this.

除了地址空间或大型计算之外,将单词大小加倍有助于更低级别的内容,主要是针对那些将要进行内核黑客攻击或编写设备驱动程序的人。例如,假设您有来自网络连接的字节流,您必须处理它们。您现在可以一次将这些字节从主存储器中提取到CPU寄存器8而不是4.但我认为您需要一个“64位感知”字符串库来利用这一点。

Anecdotally, we did observe a performance increase when upgrading from 32 bit SQL Server to 64 bit SQL Server (2005) on the same hardware (a 64 bit machine).

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

#3


2  

We recently ported some of our internally-used libraries to 64-bit. The C code didn't change at all; we just had to get the 64-bit versions of the third-party libraries we link against and figure out which new compiler directives we needed to use. The biggest headache was finding 64-bit versions of our dependencies and refactoring our build system to handle both 32-bit and 64-bit.

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

That's not to say that other software wouldn't require modification. For example, if you pack your data to fit within word boundaries, you might now be inclined to pack it differently when programming for a 64-bit system.

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

#4


0  

If you need to ask, you probably will not get any advantage, as you are probably not building into your code any assumptions about size of ints. Rather few use cases, and all fairly low-level, will see any speedup. Bignums and heavy integer arithmetic on very large numbers will be quicker (like crypto).

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

#1


7  

Anything that requires more than 4 GB of working and program memory would certainly qualify, since that is the maximum amount of memory that a 32 bit system can address directly.

任何需要4 GB以上工作和程序存储器的东西肯定都有资格,因为这是32位系统可以直接处理的最大内存量。

Since 64 bit numbers can reside in the CPU registers, calculations requiring numbers of these sizes would see a performance improvement.

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

#2


2  

Aside from address space or big calculations, doubling your word size helps more in the low level stuff, and mostly for people who are going to be doing kernel hacking or writing device drivers. For instance, let's say you have a stream of bytes from a network connection and you have to process them. You can now pull those bytes in from main memory to CPU registers 8 at a time rather than 4. But I would think you need a "64 bit aware" string library to take advantage of this.

除了地址空间或大型计算之外,将单词大小加倍有助于更低级别的内容,主要是针对那些将要进行内核黑客攻击或编写设备驱动程序的人。例如,假设您有来自网络连接的字节流,您必须处理它们。您现在可以一次将这些字节从主存储器中提取到CPU寄存器8而不是4.但我认为您需要一个“64位感知”字符串库来利用这一点。

Anecdotally, we did observe a performance increase when upgrading from 32 bit SQL Server to 64 bit SQL Server (2005) on the same hardware (a 64 bit machine).

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

#3


2  

We recently ported some of our internally-used libraries to 64-bit. The C code didn't change at all; we just had to get the 64-bit versions of the third-party libraries we link against and figure out which new compiler directives we needed to use. The biggest headache was finding 64-bit versions of our dependencies and refactoring our build system to handle both 32-bit and 64-bit.

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

That's not to say that other software wouldn't require modification. For example, if you pack your data to fit within word boundaries, you might now be inclined to pack it differently when programming for a 64-bit system.

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

#4


0  

If you need to ask, you probably will not get any advantage, as you are probably not building into your code any assumptions about size of ints. Rather few use cases, and all fairly low-level, will see any speedup. Bignums and heavy integer arithmetic on very large numbers will be quicker (like crypto).

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