我在32位Ubuntu系统上运行一个我的工艺服务器,如果我升级到64位,我可以给java的最大内存是多少?我希望它有大约12演出的ram,但我不能在32位上做到这一点
答案 0 :(得分:3)
64位系统可以解决的ram数量实际上没有最大值。您只能通过计算机的硬件停止。如果您在命令中使用正确的开关,我认为java也没有最大量的分配RAM。
答案 1 :(得分:2)
为了清楚起见,“硬件”包括分页/交换空间,所以如果你真的需要12GB并且只有8GB的RAM,你需要确保有4GB的备用交换空间才能让Java分配额外的记忆成功。
答案 2 :(得分:1)
来自Java Tuning白皮书:
对于32位进程模型,进程的最大虚拟地址大小通常为4 GB,但某些操作系统将此限制为2 GB或3 GB。尽管实际限制取决于应用程序,但最大堆大小通常为-Xmx3800m(1600m)(2 GB限制)。对于64位过程模型,最大值基本上是无限制的。
但事实是,如此巨大的堆内存使用量(12GB)会适得其反。运行很长一段时间后,你的应用程序花在垃圾收集上的时间将抵消有这么多内存可用的影响。