App下載

Java中什么是垃圾收集日志?如何啟用和分析?

級高速公路ETC識別機攜帶者 2021-09-07 09:39:22 瀏覽數(shù) (2306)
反饋

與大多數(shù)工程師的想法相反,垃圾收集對應(yīng)用程序的影響更為深遠。為了優(yōu)化內(nèi)存和垃圾收集設(shè)置并解決與內(nèi)存相關(guān)的問題,必須分析垃圾收集日志。

啟用 GC 日志

GC Logging 可以通過在應(yīng)用程序啟動期間傳遞下面提到的系統(tǒng)屬性來啟用

直到 Java 8:

以下是 JDK 8 之前所有 Java 版本都支持的系統(tǒng)屬性。

-XX:+PrintGCDetails -Xloggc:<gc-log-file-path>

例子:

-XX:+PrintGCDetails -Xloggc:/opt/tmp/myapp-gc.log

從 Java 9:

以下是從 JDK 9 開始的所有 Java 版本都支持的系統(tǒng)屬性。

-Xlog:gc*:file=<gc-log-file-path>

例子:

-Xlog:gc*:file=/opt/tmp/myapp-gc.log

如何分析GC日志?

這是傳遞上述系統(tǒng)屬性時生成的示例 GC 日志:

什么是GC

GC日志信息豐富,但是理解GC日志并不容易。沒有足夠的文檔來解釋 GC 日志格式。最重要的是,GC 日志格式?jīng)]有標準化。它因 JVM 供應(yīng)商(Oracle、IBM、HP、Azul 等)、Java 版本(1.4、5、6、7、8、9)、GC 算法(串行、并行、CMS、G1、Shenandoah)、GC 系統(tǒng)屬性而異你通過 (?-XX:+PrintGC?, ?-XX:+PrintGCDetails?,? -XX:+PrintGCDateStamps?, ?-XX:+PrintHeapAtGC? ...)?;谶@種排列組合,很容易就有 60 多種不同的 GC 日志格式。

因此,在分析GC日志時,強烈推薦使用?GCeasy?、?HPJmeter?等GC日志分析工具。這些工具解析 GC 日志并生成出色的數(shù)據(jù)圖形可視化、報告關(guān)鍵性能指標和其他一些有用的指標。


0 人點贊