jvm gc日志说明


jvm gc日志说明

******************************

测试代码

public class Test2 {

    private static int _1m=1024*1024;

    public static void main(String[] args){
        byte[] b=new byte[_1m*4];
        byte[] b2=new byte[_1m*2];
        b=null;
        b2=null;

        byte[] b3=new byte[_1m*4];
        byte[] b4=new byte[_1m*6];

        System.gc();
    }
}

******************************

java 版本

E:\java\IdeaProjects\test>java -version
java version "13" 2019-09-17
Java(TM) SE Runtime Environment (build 13+33)
Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)

64位的虚拟机只能在server模式下工作,不能切换到client模式

E:\java\IdeaProjects\test>java -client -version
java version "13" 2019-09-17
Java(TM) SE Runtime Environment (build 13+33)
Java HotSpot(TM) 64-Bit Server VM (build 13+33, mixed mode, sharing)

******************************

虚拟机参数:-Xms:20m -Xmx:20m -Xlog:gc*

注意:指定垃圾收集器参数的时候只能使用一个,使用多个垃圾收集器参数会报错

-XX:+UseSerialGC -XX:UseParallelOldGC

Error occurred during initialization of VM
Multiple garbage collectors selected

*************************

-XX:+UseSerialGC:serial + serial old垃圾收集器

[0.028s][info][gc] Using Serial   //使用serial + serial old
[0.028s][info][gc,heap,coops] Heap address: 0x00000000fec00000, size: 20 MB, Compressed Oops mode: 32-bit

****************
垃圾收集 1:

[0.154s][info][gc,start     ] GC(0) Pause Young (Allocation Failure)
                                    //在新生代进行垃圾收集
[0.156s][info][gc,heap      ] GC(0) DefNew: 1890K->640K(6144K)
                                    //defnew 新生代使用serial,回收前使用空间1890k,回收后使用640k,新生代空间共6m
[0.156s][info][gc,heap      ] GC(0) Tenured: 0K->292K(13696K)
                                    //tenures 老年代使用serial old,回收后从0变为292k,老年代空间大小为13696k
[0.156s][info][gc,metaspace ] GC(0) Metaspace: 614K->614K(1056768K)
                                    //元空间使用614k,共有1032m
[0.156s][info][gc           ] GC(0) Pause Young (Allocation Failure) 1M->0M(19M) 2.653ms
                                    //新生代进行垃圾收集,堆内存19m,时间2.653毫秒
[0.156s][info][gc,cpu       ] GC(0) User=0.00s Sys=0.00s Real=0.00s


****************
垃圾收集 2:

[0.159s][info][gc,start     ] GC(1) Pause Young (Allocation Failure)
[0.163s][info][gc,heap      ] GC(1) DefNew: 4846K->12K(6144K)
[0.163s][info][gc,heap      ] GC(1) Tenured: 292K->5028K(13696K)
[0.163s][info][gc,metaspace ] GC(1) Metaspace: 698K->698K(1056768K)
[0.163s][info][gc           ] GC(1) Pause Young (Allocation Failure) 5M->4M(19M) 4.133ms
[0.163s][info][gc,cpu       ] GC(1) User=0.02s Sys=0.00s Real=0.00s
[0.163s][info][gc,start     ] GC(2) Pause Young (Allocation Failure)
[0.164s][info][gc,heap      ] GC(2) DefNew: 2116K->13K(6144K)
[0.164s][info][gc,heap      ] GC(2) Tenured: 5028K->5028K(13696K)
[0.164s][info][gc,metaspace ] GC(2) Metaspace: 701K->701K(1056768K)
[0.164s][info][gc           ] GC(2) Pause Young (Allocation Failure) 6M->4M(19M) 0.260ms
[0.164s][info][gc,cpu       ] GC(2) User=0.00s Sys=0.00s Real=0.00s


****************
垃圾收集 3:

[0.161s][info][gc,start     ] GC(3) Pause Full (System.gc())
                             //System.gc()触发full gc,新生代使用复制算法,老年代使用整理算法

新生代进行垃圾回收,老年代没有进行垃圾回收
[0.161s][info][gc,phases,start] GC(3) Phase 1: Mark live objects         //标记存活对象
[0.163s][info][gc,phases      ] GC(3) Phase 1: Mark live objects 1.907ms //标记存活对象花费时间1.907毫秒

[0.163s][info][gc,phases,start] GC(3) Phase 2: Compute new object addresses //计算新对象地址
[0.163s][info][gc,phases      ] GC(3) Phase 2: Compute new object addresses 0.314ms //计算新对象地址花费时间0.314毫秒

[0.163s][info][gc,phases,start] GC(3) Phase 3: Adjust pointers          //调整指针
[0.164s][info][gc,phases      ] GC(3) Phase 3: Adjust pointers 0.805ms  //调整指针花费时间0.805毫秒

[0.164s][info][gc,phases,start] GC(3) Phase 4: Move objects             //移动对象
[0.166s][info][gc,phases      ] GC(3) Phase 4: Move objects 2.322ms     //移动对象花费时间2.322毫秒

[0.166s][info][gc,heap        ] GC(3) DefNew: 4155K->0K(6144K)       //新生代回收4155k
[0.166s][info][gc,heap        ] GC(3) Tenured: 11181K->11191K(13696K)
[0.166s][info][gc,metaspace   ] GC(3) Metaspace: 777K->777K(1056768K)
[0.166s][info][gc             ] GC(3) Pause Full (System.gc()) 14M->10M(19M) 5.730ms
[0.166s][info][gc,cpu         ] GC(3) User=0.00s Sys=0.00s Real=0.01s


****************
垃圾收集后堆内存空间

[0.167s][info][gc,heap,exit   ] Heap       //堆内存分布
[0.167s][info][gc,heap,exit   ]  def new generation   total 6144K, used 256K [0x00000000fec00000, 0x00000000ff2a0000, 0x00000000ff2a0000)
                                 //新生代,总共6m,使用了256k
[0.167s][info][gc,heap,exit   ]   eden space 5504K,   4% used [0x00000000fec00000, 0x00000000fec402a0, 0x00000000ff160000)
                                 //eden总共5504k,使用了4%
[0.167s][info][gc,heap,exit   ]   from space 640K,   0% used [0x00000000ff200000, 
0x00000000ff200000, 0x00000000ff2a0000)
                                 //from survivor空间640k,没使用
[0.167s][info][gc,heap,exit   ]   to   space 640K,   0% used [0x00000000ff160000, 0x00000000ff160000, 0x00000000ff200000)
                                 //to survivor空间640k,没使用

[0.167s][info][gc,heap,exit   ]  tenured generation   total 13696K, used 11191K [0x00000000ff2a0000, 0x0000000100000000, 0x0000000100000000)
                                 //老年代在,总共13696k,使用了11191k
[0.167s][info][gc,heap,exit   ]    the space 13696K,  81% used [0x00000000ff2a0000, 0x00000000ffd8dfd8, 0x00000000ffd8e000, 0x0000000100000000)
                                 //老年代使用了81%

[0.167s][info][gc,heap,exit   ]  Metaspace       used 780K, capacity 4531K, committed 4864K, reserved 1056768K
                                 //元空间使用了780k,剩余空间1056768k
[0.167s][info][gc,heap,exit   ]   class space    used 75K, capacity 402K, committed 512K, reserved 1048576K

*************************

-XX:+UseParallelGC / -XX:+UseParallelOldGC:parallel + parallel old垃圾收集器

gc日志

[0.027s][info][gc] Using Parallel     //使用parallel + parallel old
[0.027s][info][gc,heap,coops] Heap address: 0x00000000fec00000, size: 20 MB, Compressed Oops mode: 32-bit

*******************
垃圾回收 1

[0.154s][info][gc,start     ] GC(0) Pause Young (Allocation Failure)  //新生代垃圾回收
[0.157s][info][gc,heap      ] GC(0) PSYoungGen: 3964K->496K(6144K)    //新生代使用parallel垃圾回收器
[0.157s][info][gc,heap      ] GC(0) ParOldGen: 8192K->8664K(13824K)   //老年代使用parallel old垃圾回收器
[0.157s][info][gc,metaspace ] GC(0) Metaspace: 784K->784K(1056768K)
[0.157s][info][gc           ] GC(0) Pause Young (Allocation Failure) 11M->8M(19M) 3.292ms
[0.157s][info][gc,cpu       ] GC(0) User=0.00s Sys=0.00s Real=0.00s


*******************
垃圾回收 2

[0.157s][info][gc,start     ] GC(1) Pause Young (Allocation Failure)  //新生代垃圾回收
[0.158s][info][gc,heap      ] GC(1) PSYoungGen: 496K->512K(6144K)
[0.158s][info][gc,heap      ] GC(1) ParOldGen: 8664K->8680K(13824K)
[0.158s][info][gc,metaspace ] GC(1) Metaspace: 784K->784K(1056768K)
[0.158s][info][gc           ] GC(1) Pause Young (Allocation Failure) 8M->8M(19M) 1.160ms
[0.158s][info][gc,cpu       ] GC(1) User=0.00s Sys=0.00s Real=0.00s


*******************
垃圾回收 3

[0.158s][info][gc,start     ] GC(2) Pause Full (Allocation Failure)  //老年代垃圾回收
[0.158s][info][gc,phases,start] GC(2) Marking Phase                  //标记
[0.160s][info][gc,phases      ] GC(2) Marking Phase 1.990ms
[0.160s][info][gc,phases,start] GC(2) Summary Phase                  //追踪
[0.160s][info][gc,phases      ] GC(2) Summary Phase 0.010ms
[0.160s][info][gc,phases,start] GC(2) Adjust Roots                    //重新标记
[0.161s][info][gc,phases      ] GC(2) Adjust Roots 0.728ms
[0.161s][info][gc,phases,start] GC(2) Compaction Phase                //压缩整理
[0.164s][info][gc,phases      ] GC(2) Compaction Phase 2.763ms
[0.164s][info][gc,phases,start] GC(2) Post Compact
[0.164s][info][gc,phases      ] GC(2) Post Compact 0.134ms
[0.164s][info][gc,heap        ] GC(2) PSYoungGen: 512K->0K(6144K)
[0.164s][info][gc,heap        ] GC(2) ParOldGen: 8680K->5046K(12288K)
[0.164s][info][gc,metaspace   ] GC(2) Metaspace: 784K->784K(1056768K)
[0.164s][info][gc             ] GC(2) Pause Full (Allocation Failure) 8M->4M(18M) 5.819ms
[0.164s][info][gc,cpu         ] GC(2) User=0.03s Sys=0.00s Real=0.01s


*******************
垃圾回收 4

[0.166s][info][gc,start       ] GC(3) Pause Young (System.gc())     //System.gc()触发的新生代垃圾回收
[0.167s][info][gc,heap        ] GC(3) PSYoungGen: 56K->64K(6144K)
[0.167s][info][gc,heap        ] GC(3) ParOldGen: 11190K->11190K(12288K)
[0.167s][info][gc,metaspace   ] GC(3) Metaspace: 798K->798K(1056768K)
[0.167s][info][gc             ] GC(3) Pause Young (System.gc()) 10M->10M(18M) 0.877ms
[0.167s][info][gc,cpu         ] GC(3) User=0.00s Sys=0.00s Real=0.00s


*******************
垃圾回收 5

[0.167s][info][gc,start       ] GC(4) Pause Full (System.gc())      //System.gc()触发的full gc
[0.167s][info][gc,phases,start] GC(4) Marking Phase
[0.169s][info][gc,phases      ] GC(4) Marking Phase 2.026ms
[0.169s][info][gc,phases,start] GC(4) Summary Phase
[0.169s][info][gc,phases      ] GC(4) Summary Phase 0.012ms
[0.169s][info][gc,phases,start] GC(4) Adjust Roots
[0.170s][info][gc,phases      ] GC(4) Adjust Roots 0.536ms
[0.170s][info][gc,phases,start] GC(4) Compaction Phase
[0.172s][info][gc,phases      ] GC(4) Compaction Phase 2.386ms
[0.172s][info][gc,phases,start] GC(4) Post Compact
[0.172s][info][gc,phases      ] GC(4) Post Compact 0.047ms
[0.172s][info][gc,heap        ] GC(4) PSYoungGen: 64K->0K(6144K)
[0.172s][info][gc,heap        ] GC(4) ParOldGen: 11190K->11191K(12288K)
[0.172s][info][gc,metaspace   ] GC(4) Metaspace: 798K->798K(1056768K)
[0.172s][info][gc             ] GC(4) Pause Full (System.gc()) 10M->10M(18M) 5.187ms
[0.172s][info][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.01s


*******************
垃圾回收后堆内存

[0.173s][info][gc,heap,exit   ] Heap
[0.173s][info][gc,heap,exit   ]  PSYoungGen      total 6144K, used 225K [0x00000000ff980000, 0x0000000100000000, 0x0000000100000000)
                                  //年轻代,共6144k,使用225k
[0.173s][info][gc,heap,exit   ]   eden space 5632K, 4% used [0x00000000ff980000,0x00000000ff9b8708,0x00000000fff00000)
                                  //eden使用了4%
[0.173s][info][gc,heap,exit   ]   from space 512K, 0% used [0x00000000fff80000,0x00000000fff80000,0x0000000100000000)
                                  //from survivor没使用
[0.173s][info][gc,heap,exit   ]   to   space 512K, 0% used [0x00000000fff00000,0x00000000fff00000,0x00000000fff80000)
                                  //to survivor没使用

[0.173s][info][gc,heap,exit   ]  ParOldGen       total 12288K, used 11191K [0x00000000fec00000, 0x00000000ff800000, 0x00000000ff980000)
                                  //老年代,共12288k,使用11191k
[0.173s][info][gc,heap,exit   ]   object space 12288K, 91% used [0x00000000fec00000,0x00000000ff6edfe0,0x00000000ff800000)
                                  //老年代使用了91%

[0.173s][info][gc,heap,exit   ]  Metaspace       used 812K, capacity 4531K, committed 4864K, reserved 1056768K
                                  //元空间使用812k,剩余1056768k
[0.173s][info][gc,heap,exit   ]   class space    used 78K, capacity 402K, committed 512K, reserved 1048576K

*************************

-XX:+UseConcMarkSweepGC:parnew + cms垃圾收集器,par new在java10已经移除,cms从java开始已经不推荐使用

gc日志

Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
                //cms不推荐使用
[0.029s][info][gc] Using Concurrent Mark Sweep     //使用cms垃圾收集器
[0.029s][info][gc,heap,coops] Heap address: 0x00000000fec00000, size: 20 MB, Compressed Oops mode: 32-bit

********************
垃圾回收 1

[0.146s][info][gc,start     ] GC(0) Pause Young (Allocation Failure)      //新生代垃圾回收
[0.147s][info][gc,task      ] GC(0) Using 2 workers of 8 for evacuation   //使用2条垃圾回收线程
[0.149s][info][gc,heap      ] GC(0) ParNew: 1890K->640K(6144K)   //新生代使用par new垃圾收集器,回收后1890k变为640k,新生代内存空间6144k
[0.150s][info][gc,heap      ] GC(0) CMS: 0K->332K(13696K)         //老年代使用cms垃圾收集器,老年代空间13696k
[0.150s][info][gc,metaspace ] GC(0) Metaspace: 618K->618K(1056768K) //元空间1056768k

[0.150s][info][gc           ] GC(0) Pause Young (Allocation Failure) 1M->0M(19M) 3.068ms
                                                                    //堆内存19m,垃圾回收时间3.068毫秒
[0.150s][info][gc,cpu       ] GC(0) User=0.00s Sys=0.00s Real=0.00s


********************
垃圾回收 2

[0.152s][info][gc,start     ] GC(1) Pause Young (Allocation Failure)
[0.152s][info][gc,task      ] GC(1) Using 2 workers of 8 for evacuation
[0.156s][info][gc,heap      ] GC(1) ParNew: 4846K->560K(6144K)
[0.157s][info][gc,heap      ] GC(1) CMS: 332K->5106K(13696K)
[0.157s][info][gc,metaspace ] GC(1) Metaspace: 702K->702K(1056768K)
[0.157s][info][gc           ] GC(1) Pause Young (Allocation Failure) 5M->5M(19M) 4.285ms
[0.157s][info][gc,cpu       ] GC(1) User=0.02s Sys=0.02s Real=0.00s


********************
垃圾回收 3

[0.157s][info][gc,start     ] GC(2) Pause Young (Allocation Failure)
[0.157s][info][gc,task      ] GC(2) Using 2 workers of 8 for evacuation
[0.157s][info][gc,heap      ] GC(2) ParNew: 2664K->142K(6144K)
[0.157s][info][gc,heap      ] GC(2) CMS: 5106K->5106K(13696K)
[0.157s][info][gc,metaspace ] GC(2) Metaspace: 708K->708K(1056768K)
[0.158s][info][gc           ] GC(2) Pause Young (Allocation Failure) 7M->5M(19M) 0.413ms
[0.158s][info][gc,cpu       ] GC(2) User=0.00s Sys=0.00s Real=0.00s


********************
垃圾回收 4

[0.161s][info][gc,start     ] GC(3) Pause Full (System.gc())
                             //System.gc()触发的full gc,新生代par new使用复制算法,老年代cms使用标记清除算法

full gc在新生代垃圾回收
[0.162s][info][gc,phases,start] GC(3) Phase 1: Mark live objects    //标记存活对象
[0.164s][info][gc,phases      ] GC(3) Phase 1: Mark live objects 2.082ms

[0.164s][info][gc,phases,start] GC(3) Phase 2: Compute new object addresses  //计算对象新地址
[0.164s][info][gc,phases      ] GC(3) Phase 2: Compute new object addresses 0.598ms

[0.164s][info][gc,phases,start] GC(3) Phase 3: Adjust pointers      //调整指针
[0.165s][info][gc,phases      ] GC(3) Phase 3: Adjust pointers 0.975ms

[0.165s][info][gc,phases,start] GC(3) Phase 4: Move objects         //移动对象
[0.168s][info][gc,phases      ] GC(3) Phase 4: Move objects 2.838ms

[0.169s][info][gc,heap        ] GC(3) ParNew: 4293K->0K(6144K)
[0.169s][info][gc,heap        ] GC(3) CMS: 11250K->11197K(13696K)
[0.169s][info][gc,metaspace   ] GC(3) Metaspace: 783K->783K(1056768K)
[0.169s][info][gc             ] GC(3) Pause Full (System.gc()) 15M->10M(19M) 7.138ms
[0.169s][info][gc,cpu         ] GC(3) User=0.00s Sys=0.00s Real=0.01s


********************
垃圾回收 5

full gc在老年代进行垃圾回收
[0.169s][info][gc,start       ] GC(4) Pause Initial Mark          //初始标记
[0.169s][info][gc             ] GC(4) Pause Initial Mark 11M->11M(19M) 0.260ms
[0.169s][info][gc,cpu         ] GC(4) User=0.02s Sys=0.00s Real=0.00s
[0.169s][info][gc             ] GC(4) Concurrent Mark             //并发标记
[0.169s][info][gc,task        ] GC(4) Using 2 workers of 2 for marking
[0.172s][info][gc             ] GC(4) Concurrent Mark 2.891ms
[0.172s][info][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.00s

[0.172s][info][gc             ] GC(4) Concurrent Preclean         //并发预清除
[0.172s][info][gc             ] GC(4) Concurrent Preclean 0.151ms
[0.172s][info][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.00s

[0.172s][info][gc,start       ] GC(4) Pause Remark                //重新标记
[0.173s][info][gc             ] GC(4) Pause Remark 11M->11M(19M) 0.751ms
[0.173s][info][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.00s

[0.173s][info][gc             ] GC(4) Concurrent Sweep           //并发清除
[0.174s][info][gc             ] GC(4) Concurrent Sweep 0.504ms
[0.174s][info][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.00s

[0.174s][info][gc             ] GC(4) Concurrent Reset           //压缩整理
[0.174s][info][gc             ] GC(4) Concurrent Reset 0.031ms
[0.174s][info][gc,cpu         ] GC(4) User=0.00s Sys=0.00s Real=0.00s
[0.174s][info][gc,heap        ] GC(4) Old: 11197K->956K(13696K)


********************
垃圾回收后堆内存

[0.174s][info][gc,heap,exit   ] Heap
[0.174s][info][gc,heap,exit   ]  par new generation   total 6144K, used 256K [0x00000000fec00000, 0x00000000ff2a0000, 0x00000000ff2a0000)
                                 //年轻代,共6144k,使用256k
[0.174s][info][gc,heap,exit   ]   eden space 5504K,   4% used [0x00000000fec00000, 0x00000000fec40238, 0x00000000ff160000)
                                 //eden共5504k,使用4%
[0.174s][info][gc,heap,exit   ]   from space 640K,   0% used [0x00000000ff200000, 0x00000000ff200000, 0x00000000ff2a0000)
                                 //from survivor共640k,没使用
[0.174s][info][gc,heap,exit   ]   to   space 640K,   0% used [0x00000000ff160000, 0x00000000ff160000, 0x00000000ff200000)
                                 //to survivor共640k,没使用

[0.174s][info][gc,heap,exit   ]  concurrent mark-sweep generation total 13696K, used 956K [0x00000000ff2a0000, 0x0000000100000000, 0x0000000100000000)
                                 //老年代,共13696k,使用了956k

[0.174s][info][gc,heap,exit   ]  Metaspace       used 837K, capacity 4531K, committed 4864K, reserved 1056768K
                                 //元空间使用了837k。还剩1056768k
[0.174s][info][gc,heap,exit   ]   class space    used 80K, capacity 402K, committed 512K, reserved 1048576K

*************************

-XX:+UseG1GC:使用g1垃圾收集器

gc日志

[0.022s][info][gc,heap] Heap region size: 1M  //每个region区域的大小为1m
[0.024s][info][gc     ] Using G1              //使用g1垃圾收集器
[0.024s][info][gc,heap,coops] Heap address: 0x00000000fec00000, size: 20 MB, Compressed Oops mode: 32-bit
[0.046s][info][gc           ] Periodic GC disabled


*****************
垃圾回收 1

[0.144s][info][gc,start     ] GC(0) Pause Young (Concurrent Start) (G1 Humongous Allocation)
                              //在新生代进行垃圾回收
[0.144s][info][gc,task      ] GC(0) Using 2 workers of 8 for evacuation
                              //使用2条垃圾回收线程

[0.146s][info][gc,phases    ] GC(0)   Pre Evacuate Collection Set: 0.0ms
[0.146s][info][gc,phases    ] GC(0)   Evacuate Collection Set: 1.8ms
[0.146s][info][gc,phases    ] GC(0)   Post Evacuate Collection Set: 0.4ms
[0.146s][info][gc,phases    ] GC(0)   Other: 0.3ms
[0.146s][info][gc,heap      ] GC(0) Eden regions: 2->0(11)
[0.146s][info][gc,heap      ] GC(0) Survivor regions: 0->1(2)
[0.146s][info][gc,heap      ] GC(0) Old regions: 0->0
[0.146s][info][gc,heap      ] GC(0) Archive regions: 0->0
[0.146s][info][gc,heap      ] GC(0) Humongous regions: 8->0
[0.146s][info][gc,metaspace ] GC(0) Metaspace: 737K->737K(1056768K)
[0.146s][info][gc           ] GC(0) Pause Young (Concurrent Start) (G1 Humongous Allocation) 10M->0M(20M) 2.725ms
[0.146s][info][gc,cpu       ] GC(0) User=0.00s Sys=0.00s Real=0.00s


*****************
垃圾回收 2

[0.146s][info][gc           ] GC(1) Concurrent Cycle              //并发标记周期        

[0.146s][info][gc,marking   ] GC(1) Concurrent Clear Claimed Marks //初始标记
[0.146s][info][gc,marking   ] GC(1) Concurrent Clear Claimed Marks 0.015ms

[0.146s][info][gc,marking   ] GC(1) Concurrent Scan Root Regions  //扫描root所在的region
[0.148s][info][gc,marking   ] GC(1) Concurrent Scan Root Regions 1.298ms

[0.148s][info][gc,marking   ] GC(1) Concurrent Mark (0.148s)      //并发标记
[0.148s][info][gc,marking   ] GC(1) Concurrent Mark From Roots
[0.148s][info][gc,task      ] GC(1) Using 2 workers of 2 for marking
[0.148s][info][gc,marking   ] GC(1) Concurrent Mark From Roots 0.517ms

[0.148s][info][gc,marking   ] GC(1) Concurrent Preclean           //并发预清理
[0.149s][info][gc,marking   ] GC(1) Concurrent Preclean 0.161ms
[0.149s][info][gc,marking   ] GC(1) Concurrent Mark (0.148s, 0.149s) 0.738ms

[0.150s][info][gc,start     ] GC(1) Pause Remark                  //暂停标记
[0.150s][info][gc,stringtable] GC(1) Cleaned string table, strings: 2934 processed, 0 removed
[0.150s][info][gc            ] GC(1) Pause Remark 13M->13M(20M) 0.789ms
[0.150s][info][gc,cpu        ] GC(1) User=0.00s Sys=0.00s Real=0.00s

[0.150s][info][gc,marking    ] GC(1) Concurrent Rebuild Remembered Sets   //重新构建remembered sets
[0.150s][info][gc,marking    ] GC(1) Concurrent Rebuild Remembered Sets 0.074ms


*****************
垃圾回收 3

[0.151s][info][gc,task       ] GC(2) Using 2 workers of 8 for full compaction
[0.151s][info][gc,start      ] GC(2) Pause Full (System.gc())     //System.gc()触发的full gc

[0.151s][info][gc,phases,start] GC(2) Phase 1: Mark live objects  //标记存活对象
[0.153s][info][gc,stringtable ] GC(2) Cleaned string table, strings: 2934 processed, 3 removed
[0.153s][info][gc,phases      ] GC(2) Phase 1: Mark live objects 1.745ms

[0.153s][info][gc,phases,start] GC(2) Phase 2: Prepare for compaction  //准备压缩
[0.153s][info][gc,phases      ] GC(2) Phase 2: Prepare for compaction 0.491ms

[0.153s][info][gc,phases,start] GC(2) Phase 3: Adjust pointers         //调整指针
[0.154s][info][gc,phases      ] GC(2) Phase 3: Adjust pointers 0.853ms

[0.154s][info][gc,phases,start] GC(2) Phase 4: Compact heap            //压缩堆
[0.155s][info][gc,phases      ] GC(2) Phase 4: Compact heap 1.063ms

[0.156s][info][gc,heap        ] GC(2) Eden regions: 1->0(2)
[0.156s][info][gc,heap        ] GC(2) Survivor regions: 1->0(2)
[0.156s][info][gc,heap        ] GC(2) Old regions: 0->2
[0.156s][info][gc,heap        ] GC(2) Archive regions: 0->0
[0.156s][info][gc,heap        ] GC(2) Humongous regions: 12->12
[0.156s][info][gc,metaspace   ] GC(2) Metaspace: 775K->775K(1056768K)
[0.156s][info][gc             ] GC(2) Pause Full (System.gc()) 13M->12M(20M) 4.966ms
[0.156s][info][gc,cpu         ] GC(2) User=0.00s Sys=0.02s Real=0.01s

[0.156s][info][gc,marking     ] GC(1) Concurrent Mark Abort         //垃圾回收1 并发标记中断
[0.156s][info][gc             ] GC(1) Concurrent Cycle 9.711ms


*****************
垃圾回收会堆内存

[0.157s][info][gc,heap,exit   ] Heap
[0.157s][info][gc,heap,exit   ]  garbage-first heap   total 20480K, used 13237K [0x00000000fec00000, 0x0000000100000000)
                               //堆内存201480(20m),使用了13237k
[0.157s][info][gc,heap,exit   ]   region size 1024K, 1 young (1024K), 0 survivors (0K)
                               //每个region的大小为1m,年轻代1m,没有survivor

[0.157s][info][gc,heap,exit   ]  Metaspace       used 777K, capacity 4531K, committed 4864K, reserved 1056768K
                               //元空间使用777k,还剩1056768k
[0.157s][info][gc,heap,exit   ]   class space    used 75K, capacity 402K, committed 512K, reserved 1048576K
发布了387 篇原创文章 · 获赞 98 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_43931625/article/details/105031002