1. 程式人生 > >idea列印gc資訊及其簡單概述

idea列印gc資訊及其簡單概述

根據系統資訊選擇對應的檔案 
- IntelliJ IDEA 2017.2.3\bin\idea64.exe.vmoptions 
- IntelliJ IDEA 2017.2.3\bin\idea32.exe.vmoptions

在結尾加

-verbose:gc
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-Xloggc:gcc.log
1
2
3
4
5
引數介紹:

-verbose:gc : 開啟gc日誌
-XX:+PrintGCDetails : 列印gc詳情
-XX:+PrintGCDateStamps : 列印gc時間戳
-Xloggc:gcc.log : 將日誌輸出到檔案xx(預設位置為桌面)
1
2
3
4
列印資訊概述: 
環境 Java HotSpot + PraNew + CMS + jdk1.8

其中抽取兩種簡單概述
2017-12-11T12:46:56.519+0800: 0.708: [GC (Allocation Failure) 2017-12-11T12:46:56.519+0800: 0.709: [ParNew: 34944K->4352K(39296K), 0.0115267 secs] 34944K->5773K(126720K), 0.0118803 secs] [Times: user=0.06 sys=0.00, real=0.01 secs] 

2017-12-11T13:48:14.066+0800: 3678.255: [Full GC (System.gc()) 2017-12-11T13:48:14.066+0800: 3678.255: [CMS: 212212K->119161K(235848K), 0.9176937 secs] 246241K->119161K(275144K), [Metaspace: 218148K->218148K(1249280K)], 0.9198583 secs] [Times: user=0.88 sys=0.02, real=0.92 secs] 


2017-12-11 : 日期

12:46:56.519 : 執行回收時間

0.708 : idea啟動jvm到該次垃圾回收的時間(s)

GC/Full GC : 垃圾回收停頓型別 判斷是否發生“stop the world”,不能作為是否回收老年代的依據,通常是由於發生擔保失敗觸發或手動呼叫[gc(system.gc()]

Allocation Failure : 本次垃圾回收的原因,此時為Eden區空間不足

ParNew/CMS/Metaspace : 垃圾回收區域 新生代/老年代/元空間

34944K->4352K(39296K),0.0115267 secs : 清理前佔用 -> 清理後佔用(新生代總大小),過程耗時【我們普遍認為,新生代包含Eden區Survivor1/Survivor2區,而每次清理將會清空Eden區並將倖存下來的對下給你放到Survivor1/Survivor2區,所以此時清理後的4352K可以理解為是Survivor1/Survivor2區的佔用】

34944K->5773K(126720K), 0.0118803 : 整個堆記憶體清理前佔用 ——> 清理後佔用(對記憶體總大小),耗時