這段輸出是從JVM啟動(dòng)后第17秒開始截取的。從中可以看出,在經(jīng)過(guò)了12次新生代GC后出現(xiàn)了兩次Full GC,共耗時(shí)50ms。通過(guò)GUI的工具也可以獲取到同樣的信息,比如說(shuō) jsonsole 或者是 jvisualvm 。
在接受這一結(jié)論前,我們?cè)賮?lái)看下同樣是這次JVM啟動(dòng)后所輸出的GC日志。很明顯-XX:+PrintGCDetails給我們講述的是一段截然不同卻更為詳盡的故事:
java -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC eu.plumbr.demo.GarbageProducer3.157: [GC (Allocation Failure) 3.157: [ParNew: 272640K->34048K(306688K), 0.0844702 secs] 272640K->69574K(2063104K), 0.0845560 secs] [Times: user=0.23 sys=0.03, real=0.09 secs]4.092: [GC (Allocation Failure) 4.092: [ParNew: 306688K->34048K(306688K), 0.1013723 secs] 342214K