我遵循this answer以增加在系统范围内分配给JVM的内存量。就获取Java进程的设置而言,它似乎像宣传的那样工作。
但是,我想增加内存分配的Java进程实际上是由一个不透明的第三方进程产生的,该进程在创建Java进程时指定自己的内存选项(以及不提供它传递的选项的配置,因此需要系统范围的设置)。
所以会发生什么是两个设置都传递给Java进程。或者至少,当我使用approach described here查看JVM参数时,就会出现这种情况。我得到类似的东西:
是否有一些优先顺序指示在多次指定相同选项时使用哪个设置(并且可以保证相同的设置总是被选中)?
或者是否有其他方法可以检查实际应用的设置?
答案 0 :(得分:2)
检查你可以做到这一点
-Xms128m
-Xmx256m
-Xmx2g
然后
// allocate 256m
byte[] array = new byte[ 256 * 1024 * 1024 ];
System.out.println(runtime.totalMemory());
如果它的第一个选项被拿起它将是OOM,否则它将继续并且它将显示总内存为> 256米