如何知道使用jmx的Java堆中每一代的大小? [英] how can I know size of each generation in java heap with jmx

查看:0
本文介绍了如何知道使用jmx的Java堆中每一代的大小?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

jmap可以知道每一代的大小,但我希望实时监视我的Java进程。

使用jmxMemoryMXBean.getHeapMemoryUsage().getUsed()可以获得总的堆大小。但我找不到任何方法来获取:

  1. 新(年轻)和终身(老)世代人数;
  2. 伊甸园的大小和新一代的每一个幸存者。

推荐答案

您可以使用ManagementFactory.getMemoryPoolMXBeans()。它显示了所有的内存区域。根据您使用的GC,名称会有所不同。pool.getCollectionUsage().getInit()提供池的初始大小。pool.getName()如果您使用G1 GC,则pool.getName()是例如‘G1 Eden Space’或‘G1 Old Gen’或‘G1 Survivor Space’。

pool.getUsage().getUsed()还返回该区域的已用内存量。

这篇关于如何知道使用jmx的Java堆中每一代的大小?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆