显然,64位处理器具有64位地址空间,因此您可以使用超过4 GB的RAM.编译与64位相同的程序并在64位CPU上运行是否有任何其他优点可能实际上有益于不是巨大内存占用的程序?
我一般都在询问CPU,尤其是与Intel兼容的CPU.
维基百科上有一篇很棒的文章,关于64位Intel/AMD cpus在32位版本上的差异和优势.它应该包含您需要的所有信息.
一些关键的区别是:
16个通用寄存器而不是8个
附加的SSE寄存器
no执行(NX)位以防止缓冲区溢出攻击
一个64位CPU的主要优点是具有64位的指针类型,允许虚拟地址范围大于4GB的大小的能力.上的32位CPU,指针大小是(通常)32个位宽,使一个指针指的2 ^ 32(4,294,967,296)的离散地址之一.这允许一个程序来使存储了数据结构到4GB大小,并简单地去引用指针解决它的任何数据项.现实比这稍微复杂一些,但就本次讨论而言,这是一个很好的观点.
64位CPU具有64位指针类型,可以引用具有2 ^ 64(18,446,744,073,709,551,616)个离散地址或16 Exabytes的空间的任何地址.像这样的CPU上的进程可以(理论上)通过简单地取消引用指针(在指针中保存的地址处查找数据)来构造并逻辑地寻址数据结构的任何部分,最大可达16艾字节.
这允许64位CPU上的进程使用比32位CPU上的进程更大的数据集(受物理内存约束).从大多数64位系统用户的角度来看,主要优点是应用程序能够在内存中处理更大的数据集.
除此之外,您可能会获得本机64位整数类型.64位整数使用64位类型(例如C)的算术或逻辑运算long long
比作为两个32位运算实现的速度更快.浮点运算不太可能受到显着影响,因为大多数现代32位CPU上的FPU本身都支持64位double
浮点类型.
任何其他性能优势或增强的功能集都是特定芯片实现的功能,而不是具有64位ALU的系统固有的功能.
使用64位操作系统,您可以处理超过4GB的RAM.这对某些应用程序很有用.
例如,您可以在内存中加载大型数据立方体,并更有效地切割和切片(例如地震数据或医疗数据).