在 64 位平台上,可以为 java 分配的最大堆空间量是多少?是无限的吗?
原文由 Raymond Barlow 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 64 位平台上,可以为 java 分配的最大堆空间量是多少?是无限的吗?
原文由 Raymond Barlow 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果你能把宇宙中的每个原子都变成一个字节的 RAM,你就可以在 64 位地址空间中分配它。
实际上,这有点夸张。
宇宙中有 10^80 个原子(根据 WolframAlpha),在 64 位系统中有 2^64 字节的地址空间,所以你只能寻址每 5x10^60 个原子中的 1 个。但如果你有 18 亿字节的 RAM,你可能需要几个量子黑洞来为其供电。
原文由 Paul Tomblin 发布,翻译遵循 CC BY-SA 2.5 许可协议
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
3 回答1.7k 阅读✓ 已解决
理论上 2 64 ,但可能存在限制(显然)
根据 此 FAQ ,它仅受本地系统上的内存和交换空间限制:
另请记住,您需要通过命令行设置最大堆。没有 -Xmx 命令。没有它,根据相同的常见问题解答,Java 在 64 位机器上使用 64mb + 30% = 83.2mb 作为默认最大堆。
在我的机器上工作正常。但它似乎还不支持 ’t’ 修饰符,因此您还不能以 TB 为单位指定最大内存:)