title: JVM學習筆記——GC日誌
date: 2018/9/3 10:28:30
description: 最近開始着手JVM的學習,在這裏把本身學習過程當中的筆記分享出來,但願能幫到一些小夥伴,同時也是對本身的學習的一個梳理。學習
這是一個典型的GC日誌的例子,接下來拆開解析一下日誌的幾個部分:0.247: [GC (Allocation Failure) [PSYoungGen: 6278K->776K(9216K)] 6278K->4880K(19456K), 0.0032813 secs] [Times: user=0.00 sys=0.00, real=0.00 secs]日誌
0.247
是這次GC發生的時間,表示這次GC發生在JVM運行後0.247秒的時候。[GC
表示這次GC的類型,相似的還有[Full GC
,Full GC表示是帶有停頓(Stop the World)的GC。(Allocatioin Failure)
表示這次GC發生的緣由,若是是正常的GC,此處將會省略。Allocation Failure表明這次GC是由分配空間失敗致使的。[PSYoungGen:
表示GC發生的區域及使用的收集器類型,採用Parallel Scavenge收集器時,新生代被稱爲「PSYoungGen」。6278K->776K(9216K)
含義是GC前該內存區域已使用量->GC後該區域已使用量(該內存區域總容量)
。6278K->4880K(19456K)
含義是GC前JAVA堆已使用量->GC後JAVA堆已使用量(JAVA堆總容量)
。0.0032813 secs
表示該GC的耗時,單位是秒。[Times: user=0.00 sys=0.00, real=0.00 secs]
是詳細的時間數據,精確到小數點後兩位,部分收集器不會給出該數據。這裏的user、sys、real分別表示用戶態消耗CPU時間、內核態消耗CPU時間、所通過的牆鍾時間。