加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何检测-Xmx param的实际值? Runtime.getRuntime().ma

发布时间:2020-12-15 04:13:26 所属栏目:Java 来源:网络整理
导读:在我的情况下,这个值通常不同于我指定的-Xmx. 对于-Xmx810M,它返回821035008,即783MB.根据各种(不是真正可靠的)源,它应该完全返回-Xmx参数指定的值. 我在找: 找到-Xmx精确值的一些可靠方法 一些可靠的来源将证明maxMemory()不准确 解决方法 根据 http://bug
在我的情况下,这个值通常不同于我指定的-Xmx.

对于-Xmx810M,它返回821035008,即783MB.根据各种(不是真正可靠的)源,它应该完全返回-Xmx参数指定的值.

我在找:

>找到-Xmx精确值的一些可靠方法
>一些可靠的来源将证明maxMemory()不准确

解决方法

根据 http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4391499(从2001年开始,它可能在更新版本的JVM中发生了变化):

“-Xmx标志的解释依赖于VM.有些虚拟机,
包括HotSpot在内,强制执行此选项有效值的下限.“

因此,正如前面的答案所述,MaxMemory是准确的,而Xmx标志只是一个建议.

上面的链接是通过对SO的earlier similar question的回答找到的.

如果要查找用户指定的Xmx值,如果使用Sun(ahem,Oracle)JVM /,则可以大致执行以下操作:

String commandLineInput = System.getProperty("sun.java.command");
Pattern pattern = Pattern.compile("-Xmx(w*)");
Matcher matcher = pattern.matcher(commandLineInput);
while(matcher.find()) {
  System.out.println(matcher.group(1));
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读