jstat檢視gc情況
阿新 • • 發佈:2019-01-31
jstat通常用來分析系統的垃圾回收情況。
1)命令:
jstat -gccause pid 2000 #每格2秒輸出結果
或
jstat -gcutil pid 2000
2)分析:
- S0、S1 代表兩個Survivor區;
- E 代表 Eden 區;
- O(Old)代表老年代;
- P(Permanent)代表永久代;
- YGC(Young GC)代表Minor GC;
- YGCT代表Minor GC耗時;
- FGC(Full GC)代表Full GC耗時;
- GCT代表Minor & Full GC共計耗時。
Java 堆分為新生代和老年代,新生代一般劃分為三塊區域,Eden + From Survivor + To Survivor
物件一般儘量分配到新生代中,而對於大物件(長字串和大陣列)直接分配在老年代中,同時“年齡”長的的物件會從新生代自動晉升到老年代中。
Java 方法區稱為永久代,只有 HotSpot 虛擬機器才存在永久代。
首先想eden區申請分配空間,如果空間夠,就直接進行分配,否則進行一次Minor GC。minor GC 首先會對Eden區的物件進行標記,標記出來存活的物件。然後把存活的物件copy到From空間。如果From空間足夠,則回收