假设您有一个Windows客户端,您通过javacpl.exe将JVM配置为具有更大的最大堆大小,例如-Xmx1024m
。如果您正在运行的应用程序(在Web浏览器中)仍在抱怨内存大小不高于value Y
,那么硬编码到要检查的应用程序中的值,我们假设我们知道此检查是功能和正确,可以采取哪些步骤来了解为什么有问题的应用程序没有“获得”这个修改后的堆大小设置?
编辑一个可能的原因是,如果将32位JRE设置为超过2 Gb(左右)的内存,因为它无法处理它。 1024应该传播,我解决这个问题的方法就是禁用我在系统上找到的不同JRE,直到找到正在使用的JRE。
答案 0 :(得分:0)
您需要验证在启动期间将哪些 JVM参数传递到VM。
最简单的方法是运行jconsole
,它将附加到正在运行的VM,您可以在其中查看所有启动参数,当前堆大小等.jconsole随你的VM发行版一起提供,您可以在已经安装的JVM_HOME / bin /目录中找到它。
另一种选择是启用JVM日志记录 -XX:+UnlockDiagnosticVMOptions -XX:+LogVMOutput -XX:LogFile=jvm.log
,jvm.log将再次显示所有启动脚本。
另外,尝试将-Xmx
和-Xms
设置为相同的值,这样初始堆大小将是您想要的大小。