簡體   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