我想知道New Relic如何能够报告我的 GC 时间百分比,因为我没有启用 -Xloggc
and -XX:-PrintGCTimeStamps
..
还有其他方法吗?
我想知道New Relic如何能够报告我的 GC 时间百分比,因为我没有启用 -Xloggc
and -XX:-PrintGCTimeStamps
..
还有其他方法吗?
Java 总是计算 GC 信息,loggc 只确定它是否被记录到文件中。即使它没有记录到文件中,它也可以通过 JMX 获得。
看看这个例子。
佩斯的回答是正确的。一种方法是定期轮询每个已注册的GarbageCollectionMXBean实例。通过调用 MXBean 的getCollectionTime()属性/方法记录当前系统时间戳和到目前为止累积的收集时间来启动泵。此后的每个时间段,计算收集时间的增量和前一个时间间隔的经过时间。该垃圾收集器的百分比 GC 时间将为elapsed-collection-time/elapsed-time X 100。或多或少....