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