为了账号安全,请及时绑定邮箱和手机立即绑定

急求!!!!GC日志开头的"[GC"和"[Full GC"到底表示什么?求解答!

急求!!!!GC日志开头的"[GC"和"[Full GC"到底表示什么?求解答!

三国纷争 2019-07-27 09:35:59
以下是深入理解JVM第二版的原话(原书89页):GC日志开头的“[GC”和“[FullGC”说明了这次垃圾收集的停顿类型,而不是用来区分新生代GC还是老年代GC的。如果有“Full”,说明这次GC是发生了Stop-The-World的,例如下面这段新生代收集器ParNew的日志也会出现“[FullGC”(这一般是因为出现了分配担保失败之类的问题.所以才导致STW)。如果是调用System.gc()方法所触发的收集,那么在这里将显示“[FullGC(System)”。然后书的另一处(原书93页)给了一段实验代码(大对象直接进入老年代实验):publicclassMain{privatestaticfinalint_1MB=1024*1024;/**VM参数:-verbose:gc-Xms20M-Xmx20M-Xmn10M-XX:+PrintGCDetails-XX:SurvivorRatio=8-XX:+UseSerialGC*/publicstaticvoidmain(String[]args){byte[]allocation1,allocation2,allocation3,allocation4;allocation1=newbyte[2*_1MB];allocation2=newbyte[2*_1MB];allocation3=newbyte[2*_1MB];allocation4=newbyte[4*_1MB];}}运行结果:[GC(AllocationFailure)[DefNew:7131K->532K(9216K),0.0062845secs]7131K->6676K(19456K),0.0063600secs][Times:user=0.01sys=0.00,real=0.02secs]Heapdefnewgenerationtotal9216K,used4711K[0x00000000fec00000,0x00000000ff600000,0x00000000ff600000)edenspace8192K,51%used[0x00000000fec00000,0x00000000ff014930,0x00000000ff400000)fromspace1024K,52%used[0x00000000ff500000,0x00000000ff585388,0x00000000ff600000)tospace1024K,0%used[0x00000000ff400000,0x00000000ff400000,0x00000000ff500000)tenuredgenerationtotal10240K,used6144K[0x00000000ff600000,0x0000000100000000,0x0000000100000000)thespace10240K,60%used[0x00000000ff600000,0x00000000ffc00030,0x00000000ffc00200,0x0000000100000000)Metaspaceused2655K,capacity4486K,committed4864K,reserved1056768Kclassspaceused287K,capacity386K,committed512K,reserved1048576K其他先不看,先看GC日志开头,这里指定使用的是Serial/SerialOld收集器组合,Serial收集器在对新生代和老年代进行GC的时候不是会出现STW现象的吗???如果按照最上边说的“如果有“Full”,说明这次GC是发生了Stop-The-World的”,这个GC日志的开头为什么不是[FullGC而是[GC???
查看完整描述

2 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

实现你要明白一个事情。fgc不一定是必须会stop-the-world的。取决于gc算法的。比较新的版本都是在努力的避免fgc的。而且新生代的gc叫ygc。老生带的gc叫ogc,一般情况下。新生代用的复制算法,也就是ygc,所以不会造成停顿。因为他同时只会有一个区域工作。但是老生代就比较麻烦了。更何况你这种情况只是分配大对象到老生带。所以说没有产生ygc。
                            
查看完整回答
反对 回复 2019-07-27
  • 2 回答
  • 0 关注
  • 660 浏览
慕课专栏
更多

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号