Java:GarbageCollectorMBean.getCollectionTime 是否返回暂停时间或其他?

2022-01-16 00:00:00 garbage-collection java

Oracle 的 javadoc for GarbageCollectorMBean.getCollectionTime 说,以毫秒为单位返回近似的累积收集经过时间."这是任何垃圾收集器线程所花费的具体暂停时间还是一般时间?

Oracle's javadoc for GarbageCollectorMBean.getCollectionTime says, "Returns the approximate accumulated collection elapsed time in milliseconds." Is that specifically pause time or generally time spent by any of the garbage collector threads?

推荐答案

GarbageCollectorMBean.getCollectionTime() 返回特定算法的累积挂钟时间,以毫秒为单位.

GarbageCollectorMBean.getCollectionTime() return cumulative wall clock time in milliseconds for specific algorithm.

对于 Stop-the-World 算法(通常是年轻的集合),这可以解释为时间应用程序暂停.

For Stop-the-World algorithms (young collections usually) this could be interpreted as time application was paused.

对于并发算法,该值完全无用,因为它不是 STW 时间,也不是 CPU 时间(算法可能使用多个线程,但会计算挂钟时间).

For concurrent algorithms that value is perty useless, because it is not STW time and it is not CPU time (algorithm may use multiple threads, but wall clock time would be calculated).

GC 算法消耗的正确 CPU 时间可以从性能计数器(这里是读取这些计数器的代码示例).

Correct CPU time consumed by GC algorithm could be retrieved from performance counters (here is example of code reading these counters).

相关文章