JVM选项-Xms和-Xmx将被忽略

时间:2012-08-03 18:26:09

标签: java memory-leaks jvm jconsole

我在一个尚未激活的窗口上运行浏览器(IE,如果它很重要)(如果这很重要)。我已将JVM控制面板中的环境变量设置为-Xms5m -Xmx5m(我还完成了-Xms16m和-Xmx16m)。

当我运行应用程序并使用jconsole监视进程的pid时,它告诉我我使用的内容远远超过我的set heap而不是抛出堆空间错误(我正在尝试专门解决此错误)。根据jconsole,它使用15-20Mb。我已重新启动计算机,并且已将所有浏览器设置为此选项。

有谁知道为什么要忽略这些参数。

如果有任何信息丢失,请告诉我。

请注意,jconsole明确指出我的堆内存使用量是20mb。我很清楚,由于加载了JVM,库,堆栈等,可能会有更多的内存使用。我遇到的问题是堆超出了我指定应该使用的堆大小。

-Xmx16m选项未在Java VisualVm中列出,即使它是环境变量中设置的唯一选项(我甚至删除了-Xms16m以确保Java VisualVm正在更新。-Xms16m确实出现了甚至虽然-Xmx16m没有)。有谁知道为什么会这样?

我已经尝试了从27到31的Java RE版本6,并且所有这些版本都缺少Java VisualVm选项中的Xmx选项,并且它们都只有-Xms16m。

1 个答案:

答案 0 :(得分:3)

正如已经多次回答的那样(我目前找不到链接),运行时参数仅控制程序允许从堆中分配的内存量。 JRE本身使用更多的内存来管理堆,因此-Xms-Xmx参数与所使用的实际内存量无关(如果有的话)。你的计划。