【发布时间】:2017-06-09 23:12:10
【问题描述】:
我可以从 jmx 检索 GarbageCollectionMXBean。但是我如何区分 major gc 和 full gc?那是非官方的术语。如果清理了旧代,我将 gc 表示为 major。 full 我的意思是 gc 压缩(碎片整理)堆。从实际的角度来看,当并发模式失败或程序员显式调用System.gs时会发生完整的gc
是否可以用jmx区分此类事件?
【问题讨论】:
-
可以通过JMX获取GC原因,见the example。通常 CMS 循环会有 "No GC" 原因。显式 GC 会有 "System.gc" 原因,并发模式失败通常会以 "ConcurrentMarkSweep - Allocation Failure" 原因结束。这足够了吗?还是您正在寻找其他东西?
-
非常接近。事实上,我已经找到了这个通知描述,并忙于编写示例代理来收集统计数据并找到“gcAction”、“gcCause”和 gc 行为之间的相关性。
标签: java garbage-collection jvm jmx