如何选择Maximum JVM Heap size的值

时间:2015-10-12 18:55:59

标签: java jvm

我想为最大JVM堆大小选择一个值。我有一些问题。

1)它通常与系统上可用的物理内存大小有关吗?如果是的话,有没有关于此的公式?

2)对于32位JVM,即使物理内存非常大,我也可以设置大于4GB的值吗?

3)我是否需要考虑操作系统的某些影响(例如Windows,Linux)?

谢谢

1 个答案:

答案 0 :(得分:0)

1.。)是否可以分配给JVM的内存量与系统上可用的物理内存有关。没有固定的公式,但是您可以使用经验法则来确定流程的内存分配大小。有针对不同操作系统的内存建议。因此(PhysicalMemory - 推荐的OS内存)可以分配给java进程。它因32位与64位操作系统而异。如果您没有任何其他过程,那么此公式将正常工作。但是,如果您有其他内存消耗进程,那么您还需要考虑这些进程的内存分配。

e.g。 Windows 7具有以下建议要求1 gigabyte (GB) RAM (32-bit) or 2 GB RAM (64-bit)。因此,如果你有4GB物理内存,那么你可以为你的进程分配2GB,假设OS使用2GB。

2.。)对于32位JVM,您无法将值设置为大于4GB。实际上,如果你的总物理内存是4GB。您不能为Java进程分配超过2GB的空间。 Checkout this answer了解更详细的说明

3。)是的,你应该考虑操作系统的影响。检查不同操作系统的建议内存配置,并确定Java进程的内存。

希望这有帮助。