繁体   English   中英

垃圾收集

[英]Garbage Collection

垃圾回收(GC)信息的日志记录选项可帮助您调整堆大小或诊断与内存有关的任何其他问题,它是由什么完成的?

-verbose:gc是您想要的。

请查看GCPortal了解更多相关信息。

JConsole可用于以图形方式监视垃圾收集,有时可用于识别趋势等。

简而言之

  • -XX:PrintGCDetails每个GC阶段的时间和空间大小
  • -XX:+PrintGCDateStamps向gC日志添加时间戳
  • -XX:+PrintReferenceGC帮助查找参考滥用
  • -XX:+PrintPromotionFailure
  • -XX:+PrintGCApplicationStoppedTime报告所有安全点而不仅仅是GC

更全面的GC选项列表

垃圾收集日志记录取决于您使用的JVM的类型。 根据所使用的JVM,有不同的参数可启用GC日志记录。 以下是启用GC日志记录所需包含的参数:

SUN JVM :-XX:+ PrintGCDetails -XX:+ PrintGCDateStamps(它将同时打印时间和日期)-verbose:gc -Xloggc:/path/gc.log

注--XX:+ PrintGCTimeStamps(它将以秒为单位打印JVM重新启动后的时间,而不是以hh:mm:ss格式显示时间戳。这有点难以解释,因此建议改用PrintGCDateStamps)

JRockit -Xverbose -XverboseTimeStamp -Xverboselog:/path/gc.log

IBMJ9-详细 :gc

您可能需要查看Java Flight Recorder,它为您提供了完整的GC统计信息,而其开销却很小。 您可以在应用程序运行时开始JFR记录。 生成的输出文件将具有有关GC统计信息的详细信息。 您必须使用Java Mission Control打开输出的jfr文件。

我曾经使用以下选项来分析Sun / OpenJDK JVM的GC性能:

#打印细节GC信息

-XX:+PrintGCDetails

#在GC事件上打印日期戳,以便将它们与应用程序问题相关联

-XX:+PrintGCDateStamps

#打印HEAP使用情况(GC之前,GC之后,Young Gen,Old Gen等)。

-XX:+PrintHeapAtGC

#在STW暂停期间打印参考处理时间

-XX:+PrintReferenceGC

#打印JVM生成的Young Gendécision。 如果您没有使用NewRation选项设置Young Gen的大小,将很有帮助

-XX:+PrintAdaptiveSizePolicy

#将GC原因添加到日志中(System.gc,升级失败,并发模式失败等)

-XX:+PrintGCCause

#添加促销失败的详细信息

-XX:+PrintPromotionFailure

#打印根据年龄划分的Java对象分布。 有助于查看您的伊甸园和幸存者空间是否足够大

-XX:+PrintTenuringDistribution

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM