前言

64位系统和32位系统首先涉及到提取数据的能力,64位系统肯定比32位系统提取数据的能力强一倍
但是这只是建立在64位操作系统的64位软件上。
进程的64位和32位和编译器有关系,而不是和操作系统有绝对关系

64位系统和32位的寻址能力的比较

1.64位CPU拥有更大的寻址能力,最大支持到16GB内存(了解64位系统支持多少内存,看下面介绍),而32bit只支持4G内存

64位系统和32位的提取数据能力比较

2.64位cpu一次性可以提取64位数据,比32位提高了一倍,理论上性能会提升一倍。
但这是建立在64位操作系统和64位软件的基础上的。

什么是64位处理器?

64位处理器实际上一次处理数据的能力是64位,和8,16,32位比较,都是一次处理数据的能力更加打,之所以很少听过128位,是因为目前的计数暂时无法制造这么复杂的芯片

64位系统和32位的进程中指针一个是4字节一个是8字节

指针其实就是地址,为了区分2的64次方个字节,必须要一个大的计数单位,所以需要8个字节,同理,2的32次方个字节需要4个字节的变量大小来计数。
(1)在一个运行在64位的进程和32位的进程比较,它们的指针一个是4字节,一个是8字节
32位的机器的寻址能力2的32次方,也就是是4个G,64位的机器的寻址能力理论是2的64次方,肯定大于8个G。
(2)一个进程也有64位进程和32位进程之分,虽然对于进程而言它们使用的是虚拟内存。
(3)但是对于32位进程而言,它认为自己有4个G的空间,当然在硬件上确实是可以做到的
(4)对于64位进程而言,它认为自己有大于8个G的内存,甚至更加多,但是硬件上目前民用支持最多16个G的内存,再大的内存也没必要。
(5)指针的大小实际上是和最大的寻址能力有关的,对于32位的进程而言,它最大的内存有4G,为了访问到这四个4G的内存,它的寻址能力必须是32位的,也就是它的指针必须是4个字节的
对于64位的进程也一样,它的最大的内存有2的64次方个比特位,这是相当大的一个内存,虽然硬件上是没有办法满足这么大的内存,但是指针必须是8个字节,因为进程中的地址是虚拟的,即使实际上没有这么大,进程也可以认为它有这么大。
注意:
之所以要和进程扯上关系,是因为进程中的地址是虚拟地址,即使实际内存只有1个G,一个32位的进程依然可以认为自己有4个G的内存,因为进程在使用自己的虚拟内存时并不是全部使用,而是可能只使用一小部分,所以我们只要把进程使用的部分与物理地址建立映射,其他没有使用的虚拟内存不需要管,进程依然正常使用内存,它不会意识到实际物理内存不够用,为它没有使用这么多。
对于64为进程而言也是一样的道理,虽然对于64为进程它认为自己的内存是很大很大的,但是实际上因为有虚拟内存机制的存在,即使实际内存没有这么大,也没事
总结:
指针为4个字节和8个字节和进程是多少位进程有关,因为指针指向的是虚拟内存。

64位系统最大支持多少内存

32位:系统能够识别的内存最大在3.25-3.5GB左右,也就是说4GB的内存条有0.5GB左右用不了。2GB内存条或者2GB+1GB内存条用32位系统丝毫没有影响。

64位:对于64位系统的Windows 7,最大内存支持就要视不同的系统版本而定了。比如,Windows 7 Home Basic 64位最大仅支持8GB内存、Home Premium为192GB,此外,高端的Enterprise、Ultimate等则支持支持192GB的最大内存。

64位操作系统的寻址空间就是2的64次方。计算出来是18446744073709551616字节,当然这只是理论值,实际中不可能用到这么大的内存,目前64位windows系统最大只支持128G。而当前主流主板只能加到16G。

所以综上所述:
64位系统最大支持192G的内存容量,但是受到当前主流民用主板技术的影响,只能加到16G的内存

11-21 02:17