結合上篇博文(其中的Eclipse Memory Analyzer分析內存溢出)進行分析GC日誌 html
![](http://static.javashuo.com/static/loading.gif)
(1)首先,給出一個日誌輸出的例子:java
參數設置爲:oracle
-XX:+PrintGCDetails -XX:-UseAdaptiveSizePolicy -XX:SurvivorRatio=8 -XX:NewSize=10M -XX:MaxNewSize=10Mspa
參數解釋:日誌
-XX:+PrintGCDetails 啓用日誌xml
-XX:-UseAdaptiveSizePolicy 禁用動態調整,使SurvivorRatio能夠起做用htm
-XX:SurvivorRatio=8 設置Eden:Survivior=8blog
-XX:NewSize=10M -XX:MaxNewSize=10M 設置整個新生代的大小爲10Mip
默認垃圾收集器爲:Parallel Scavenge內存
(2)輸出結果爲:
[GC [PSYoungGen: 4423K->320K(9216K)] 4423K->320K(58880K), 0.0011900 secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
[Full GC (System) [PSYoungGen: 320K->0K(9216K)] [ParOldGen: 0K->222K(49664K)] 320K->222K(58880K) [PSPermGen: 2458K->2456K(21248K)], 0.0073610 secs] [Times: user=0.01 sys=0.00, real=0.00 secs]
Heap
PSYoungGen total 9216K, used 491K [0x00000000ff600000, 0x0000000100000000, 0x0000000100000000)
eden space 8192K, 6% used [0x00000000ff600000,0x00000000ff67af50,0x00000000ffe00000)
from space 1024K, 0% used [0x00000000ffe00000,0x00000000ffe00000,0x00000000fff00000)
to space 1024K, 0% used [0x00000000fff00000,0x00000000fff00000,0x0000000100000000)
ParOldGen total 49664K, used 222K [0x00000000c5800000, 0x00000000c8880000, 0x00000000ff600000)
object space 49664K, 0% used [0x00000000c5800000,0x00000000c58378a0,0x00000000c8880000)
PSPermGen total 21248K, used 2466K [0x00000000c0600000, 0x00000000c1ac0000, 0x00000000c5800000)
object space 21248K, 11% used [0x00000000c0600000,0x00000000c0868b48,0x00000000c1ac0000)
對照上面的圖,GC日誌中的PSYoungGen(PS是指Parallel Scavenge)爲Eden+FromSpace,而整個YoungGeneration爲Eden+FromSpace+ToSpace。
咱們設置的新生代大小爲10240K,這包括9216K大小的PSYoungGen和1024K大小的ToSpace。其中,PSYoungGen中的Eden:FromSpace爲8:1,
這包括8192K的Eden和1024K的FromSpace。