使用Xms和Xmx管理Java内存

时间:2017-08-22 14:38:33

标签: java memory jconsole

我有一个作为守护进程运行的java应用程序。最初,我发现大约一周后,应用程序会抛出内存不足错误。我研究过,我发现我可以通过在启动时设置-Xms和-Xmx标志来管理内存并避免问题,以指定应用程序将具有多少内存。这最终解决了我的记忆问题。

然而,稍后,我发现该应用程序在一些只有1GB内存的机器上导致性能问题,1GB内存是我为-Xmx分配的数量。所以java应用程序占用了所有可用的内存。

因此,使用jconsole,我即将确定该应用程序的运行速度约为150mb。因此,使用该信息,我将-Xmx值降至300mb。认为这将是充足的。但后来我发现应用程序只使用了大约15mb。为什么?为什么应用程序在分配1GB时使用150mb,而在分配300mb时仅使用15mb?

我该如何弄清楚我应该使用什么?

0 个答案:

没有答案