关于:JDK中提供的监控JVM的Mbean

xiaoyu1985ban 2013-11-27
最近产品中希望增加JVM监控功能,查看系统使用的JVM的占用情况。具体说就是三个指标:最小多少,最大多少,当前使用多少。

使用JDK 1.6版本,调研时,发现提供了如下的方法:

System.out.println(ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().toString());
System.out.println(ManagementFactory.getMemoryMXBean().getNonHeapMemoryUsage().toString());

输入信息如下:
堆内存:
init = 268435456(262144K) used = 1432640(1399K) committed = 259522560(253440K) max = 523501568(511232K)

非堆内存:
init = 90341376(88224K) used = 13610344(13291K) committed = 90701824(88576K) max = 123731968(120832K)


这里想问一下,堆使用的内存 + 非堆使用的内存,能否可以作为JVM整个使用的内存?

谢谢大家

runshine 2013-11-27
不能。
这个只是堆与方法区,其它还有栈、直接内存
而您提到的“JVM整个”?那可能您原意中还包含了JVM本身需要的内存空间吧,这个也没包含在内。
Global site tag (gtag.js) - Google Analytics