列印GC詳細資訊
阿新 • • 發佈:2019-02-09
一些有用的 -XX選項:
Boolean 選項開啟是通過 -XX:+<option>
,關閉是通過 -XX:-<option>
. ;
數值型別的選項是通過-XX:<option>=<number>設定, 數值包括使用 'm' or 'M' 表示兆位元組, 'k' or 'K' 表示千位元組, 和'g' or 'G' 表示千兆位元組 (例如, 32k 和 32768相同).
字元創選項通過-XX:<option>=<string>
設定,常常用來設定檔案,路徑,和一系列的命令。
具體的選項可以參考:點選開啟連結
以下是一些幫助列印GC資訊的引數:
1.命令列引數 -verbos:gc 可以送出每一次垃圾收集時的堆和垃圾收集資訊。輸出為:
[GC 325407K->83000K(776768K), 0.2300771 secs]
[GC 325816K->83372K(776768K), 0.2454258 secs]
[Full GC 267628K->83769K(776768K), 1.8479984 secs]
-verbos:gc 輸出的格式可能在將來的版本里有所改變。
2.-XX:+PrintGC,輸出:
[GC 118250K->113543K(130112K), 0.0094143 secs] [Full GC 121376K->10414K(130112K), 0.0650971 secs]
3.通過-XX:+PrintGCDetails引數可以檢視更多垃圾回收相關的資訊。下面是序列垃圾收集器使用該引數打印出來的資訊。
[GC [DefNew: 64575K->959K(64576K), 0.0457646 secs] 196016K->133633K(261184K), 0.0459067 secs]
4.選項-XX:+PrintGCTimeStamps會提供每次回收開始時間的時間戳。這對於檢視垃圾回收頻率非常有用。
111.042: [GC 111.042: [DefNew: 8128K->8128K(8128K), 0.0000505 secs] 111.042: [Tenured: 18154K->2311K(24576K), 0.1290354 secs] 26282K->2311K(32704K), 0.1293306 secs]
5.-XX:+PrintHeapAtGC:列印GC前後的詳細堆疊資訊,輸出
34.702: [GC {Heap before gc invocations=7:
def new generation total 55296K, used 52568K [0x1ebd0000, 0x227d0000, 0x227d0000)
eden space 49152K, 99% used [0x1ebd0000, 0x21bce430, 0x21bd0000)
from space 6144K, 55% used [0x221d0000, 0x22527e10, 0x227d0000)
to space 6144K, 0% used [0x21bd0000, 0x21bd0000, 0x221d0000)
tenured generation total 69632K, used 2696K [0x227d0000, 0x26bd0000, 0x26bd0000)
the space 69632K, 3% used [0x227d0000, 0x22a720f8, 0x22a72200, 0x26bd0000)
compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)
the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000)
ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000)
rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000)
34.735: [DefNew: 52568K->3433K(55296K), 0.0072126 secs] 55264K->6615K(124928K)Heap after gc invocations=8:
def new generation total 55296K, used 3433K [0x1ebd0000, 0x227d0000, 0x227d0000)
eden space 49152K, 0% used [0x1ebd0000, 0x1ebd0000, 0x21bd0000)
from space 6144K, 55% used [0x21bd0000, 0x21f2a5e8, 0x221d0000)
to space 6144K, 0% used [0x221d0000, 0x221d0000, 0x227d0000)
tenured generation total 69632K, used 3182K [0x227d0000, 0x26bd0000, 0x26bd0000)
the space 69632K, 4% used [0x227d0000, 0x22aeb958, 0x22aeba00, 0x26bd0000)
compacting perm gen total 8192K, used 2898K [0x26bd0000, 0x273d0000, 0x2abd0000)
the space 8192K, 35% used [0x26bd0000, 0x26ea4ba8, 0x26ea4c00, 0x273d0000)
ro space 8192K, 66% used [0x2abd0000, 0x2b12bcc0, 0x2b12be00, 0x2b3d0000)
rw space 12288K, 46% used [0x2b3d0000, 0x2b972060, 0x2b972200, 0x2bfd0000)
}
, 0.0757599 secs]
6.-Xloggc:filename,輸出垃圾收集器的資訊到一個指定的檔案。例如:-Xloggc:F://log.txt 7.-XX:+PrintGCApplicationConcurrentTime,列印每次垃圾回收前,程式未中斷的執行時間。
輸出形式:Application time: 0.5291524 seconds
8.-XX:+PrintGCApplicationStoppedTime,列印垃圾回收期間程式暫停的時間。
Total time for which application threads were stopped: 0.0468229 seconds
這些選項可以配合使用,幫助更好分析GC的發生頻率和詳細情況。