问题描述
我正在使用JVM的PerfCounters,但不明白为什么java.ci.totalTime比sun.rt.safepointTime大。
例如,当:
我像这样sun.gc.collector.0.time + sun.gc.collector.1.time = total_GC_time来计算total_GC_time。
该total_GC_time总是比sun.rt.safepointTime少,没关系。
但是我不明白为什么java.ci.totalTime比sun.rt.safepointTime大?
可能是java.ci.totalTime,它是后台操作,不会生成jvm暂停(安全点)
然后如何了解JIT在SafePoint暂停中花费多长时间?
解决方法
这些是完全无关的东西。
java.ci.totalTime
是JIT编译花费的总时间。这与安全点无关。在应用程序线程运行时,JIT编译器在后台工作。