为了账号安全,请及时绑定邮箱和手机立即绑定

JMX 获取实时堆内存使用情况报告常量值

JMX 获取实时堆内存使用情况报告常量值

萧十郎 2021-06-21 20:42:46
我有一个程序可以监视 JVM 的堆内存使用情况。从我从文档中了解到,系统中只有一个 JVM,我们可以使用ManagementFactory.getMemoryBean()来获取 JVM 的 MXbean。但是当我随着时间的推移反复运行这个程序时,我得到了使用的堆内存的常量值。我有一个创建对象并在循环中销毁它们的 Java 程序。在 JVisualVM 中进行监控时,实时使用情况图表明堆内存使用情况随时间变化,而且由于它运行在同一个 JVM 上,这些值不应该也改变吗?这是获取内存的代码片段:        MemoryMXBean memBean = ManagementFactory.getMemoryMXBean();        MemoryUsage mem = memBean.getHeapMemoryUsage();        long heapMax = mem.getMax();        long heapCurrMax = mem.getInit();        long heapUsed = mem.getUsed();        long heapCommitted = mem.getCommitted();已用内存的输出:379771840379771840379771840379771840379771840379771840全部间隔 5 秒。有人能告诉我我在做什么是错的还是我的理解是错的?
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

我不知道如何,但经过反复尝试,相同的代码开始工作。做完之后会贴出详细的分析。


查看完整回答
反对 回复 2021-06-30
  • 1 回答
  • 0 关注
  • 237 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信