如果我没有启用“-Xloggc和-XX:-PrintGCTimeStamps”,是否可以获得GC时间的百分比?

时间:2013-02-23 11:59:30

标签: java garbage-collection jvm jmx newrelic

我想知道 New Relic 如何报告我的GC时间百分比,因为我没有启用-Xloggc-XX:-PrintGCTimeStamps ..

还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

Java总是计算GC信息,loggc只确定它是否记录到文件中。即使它没有记录到文件,它也可以通过JMX获得。

看看this example

答案 1 :(得分:0)

佩斯的回答是正确的。一种方法是定期轮询每个已注册的GarbageCollectionMXBean实例。通过调用MXBean的getCollectionTime()属性/方法,记录当前系统时间戳和累积收集时间来灌注泵。此后的每个时段,计算收集时间中的增量和来自前一时间间隔的经过时间。该垃圾收集器的GC时间百分比为 elapsed-collection-time / elapsed-time X 100 。或多或少......