在64位平台上,可以为java分配的最大堆空间是多少?是不是无限的?
发布于 2010-01-19 21:24:25
如果你能把宇宙中的每个原子变成一个字节的RAM,你就可以把它分配到64位的地址空间中。
实际上,这有点夸张了。
根据WolframAlpha的说法,宇宙中有10^80个原子,64位系统中有2^64字节的地址空间,所以您只能对每5x10^60个原子中的一个进行寻址。但如果你有18千万亿字节的RAM,你可能需要几个量子黑洞来为它供电。
发布于 2010-01-19 21:52:13
对于Sun的最新VM,实际的堆限制大小通常是可用物理和/或虚拟内存的512倍。即使理论上的限制要高得多,VM也会在启动时为每512字节的堆内存分配1字节用于管理目的,因此1TB的堆将立即需要2 2GB用于内存管理。
发布于 2010-01-19 21:24:57
理论上,它介于2^63
和2^64
字节之间。
在实践中,它受到计算机上可用的物理内存和交换空间大小的限制。而物理内存又受到芯片组(即物理内存地址总线上的地址引脚的数量)和主板(即DIMM插槽的数量和大小)的限制。
https://stackoverflow.com/questions/2093679
复制相似问题