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

Java JVM选项-Xms和-Xmx被忽略,java,memory-leaks,jvm,jconsole,Java,Memory Leaks,Jvm,Jconsole,我有一个在浏览器上运行的应用程序(如果有关系的话)在一个尚未激活的窗口上运行(如果有关系的话)。我已经将JVM控制面板中的环境变量设置为-Xms5m-Xmx5m(我还设置了-Xms16m和-Xmx16m) 当我运行应用程序并使用jconsole监视进程的pid时,它告诉我,我使用的堆比设置的堆多得多,而不是抛出堆外空间错误(我正特别尝试获取此错误)。根据jconsole,它使用15-20Mb。我已经重新启动了我的计算机,并且在关闭所有浏览器的情况下设置了此选项 有人知道为什么忽略这些参数吗 如果

我有一个在浏览器上运行的应用程序(如果有关系的话)在一个尚未激活的窗口上运行(如果有关系的话)。我已经将JVM控制面板中的环境变量设置为-Xms5m-Xmx5m(我还设置了-Xms16m和-Xmx16m)

当我运行应用程序并使用jconsole监视进程的pid时,它告诉我,我使用的堆比设置的堆多得多,而不是抛出堆外空间错误(我正特别尝试获取此错误)。根据jconsole,它使用15-20Mb。我已经重新启动了我的计算机,并且在关闭所有浏览器的情况下设置了此选项

有人知道为什么忽略这些参数吗

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

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

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


我已经尝试了从27到31的JavaReversion6,但是它们都缺少JavaVisualVM选项中的Xmx选项,并且它们都只有-Xms16m

正如已经回答了很多次(我现在找不到链接),运行时参数只控制允许程序从堆中分配多少内存。JRE本身使用了更多的内存来管理堆,因此
-Xms
-Xmx
参数与程序实际使用的内存量没有很好的相关性(如果有的话)。

如何传递值?我通过打开控制面板,搜索java并选择它来传递值,然后转到java选项卡并单击view按钮,最后设置运行时参数(然后确定、应用、关闭浏览器、重新启动计算机等)。在VisualVM中,您可以看到正在运行的进程的命令行参数和最大堆大小(以确认其被忽略)我正在使用jconsole检查堆内存使用情况,可能是jconsole给了我一个不正确的读数,但我正在与应用程序一起使用的模拟终端告诉我相同的信息。您建议我使用哪些其他工具来检查堆内存使用情况?我认为您的愤怒是不恰当的。他使用JConsole来确定堆的大小。JConsole应该是准确的,这表明传递JVM配置参数确实存在问题。