cod*_*ter 2 java garbage-collection jvm
在Java实例中跟踪GC暂停/停止时间的最佳方法是什么?
gc.log是否包含MXBean没有的任何其他信息?我更喜欢选项1,因为我希望实例将该度量标准发送到我们的监控系统.
我已经通过像几个帖子读这对SO,但我似乎并没有越来越正确的答案.我特意寻找GC停滞时间而不是 GC上花费的总时间.
垃圾收集不是JVM停止世界停顿的唯一原因.
您也可能想要计算其他原因.
监视安全点暂停的第一种方法是解析VM日志:
-XX:+PrintGCApplicationStoppedTimeJVM选项;-Xlog:safepoint.然后Total time for which application threads were stopped在日志文件中查找消息.
第二种方法是使用未记录的 Hotspot内部MXBean:
sun.management.HotspotRuntimeMBean runtime =
sun.management.ManagementFactoryHelper.getHotspotRuntimeMBean();
System.out.println("Safepoint time: " + runtime.getTotalSafepointTime() + " ms");
System.out.println("Safepoint count: " + runtime.getSafepointCount());
Run Code Online (Sandbox Code Playgroud)
它为您提供所有JVM暂停的累积时间.请参阅本答案中的讨论.
| 归档时间: |
|
| 查看次数: |
512 次 |
| 最近记录: |