【问题标题】:Which JVM options take priority?哪些 JVM 选项优先?
【发布时间】:2014-10-28 18:47:24
【问题描述】:

我关注this answer 是为了增加在系统范围内分配给 JVM 的内存量。就将设置传递给 Java 进程而言,它似乎像宣传的那样工作。

但是,我想要增加内存分配的 Java 进程实际上是由一个不透明的第三方进程生成的,该进程在创建 Java 进程时指定它自己的内存选项(以及不提供它传递的选项的配置,因此需要系统范围的设置)。

所以发生的情况是 both 设置都传递给了 Java 进程。或者至少,当我使用 approach described here 查看 JVM 参数时似乎会发生这种情况。我得到类似的东西:

是否有一些优先顺序规定在多次指定相同选项时使用哪个设置(并保证将始终选择相同的设置)?

或者是否有其他方法可以检查实际应用了哪些设置?

【问题讨论】:

标签: java memory jvm arguments


【解决方案1】:

检查您是否可以这样做

-Xms128m
-Xmx256m
-Xmx2g

然后

// allocate 256m
byte[] array = new byte[ 256 * 1024 * 1024 ];
System.out.println(runtime.totalMemory());

如果它的第一个选项被选中,它将 OOM,否则它将继续并显示总内存为 > 256m

【讨论】:

  • 谢谢,这行得通。与here 讨论的方法一样。两者都表明优先考虑的是 last 值,至少在使用 OpenJDK 时是这样。
猜你喜欢
  • 2019-02-22
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多