在C语言中,分配内存使用malloc()
函数。现在有一个7GB的数据库需要进行排序,64位的软件可以malloc一个7GB的空间,将整个数据库“放入”内存,然后使用任意排序算法。而32位的软件在malloc时就会out of memory
。
- 对于32位系统而言,只能同时操作0~232-1共232字节的内存,也就是4G内存(地址空间)。
- 对于32位系统而言,理论上可以操作264字节的内存,实际情况需要和CPU处理能力匹配,但内存肯定大于4G。
64位解决的是地址空间的瓶颈问题,最终系统的效率还取决于物理内存的大小。