每日一博 | g1 源码之 youngGC 技术细节探究
笔者经过上次研究ZGC的代码之后,感受到了ZGC性能的提升和设计的巧妙,由此知道了ZGC的各种优势。但是现在日常生产中许多应用还是用的JAVA8和G1,作为一个对技术有追求的程序员,不由得产生了看一看G1源码的想法。笔者一直本着比较学习才能收获更多的原则,所以打开了java8的源码,开始学习G1,再学习过程中发现,G1的代码相较于zgc阅读起来稍微有些困难,花的时间更长一些。网上许多关于G1源码的文章并不是很全面,有些问题也没有讲清楚,笔者会尽量将源码的细节阐述清楚。 首先G1的GC过程分为4个阶段或者说策略: youngGC 老年代并发GC(又叫并发模式gc,本文都先称之为老年代并发gc) 混合GC FullGC 每个阶段GC的内容都比较多,在这里由于篇幅原因,我们先讲解下g1中youngGc(源码中也叫增量gc) 的源码,话不多说,直接来看: 一.youngGC触发的时机 关于GC笔者不建议直接去看GC的方法,最好时从GC触发的时机去看,从入口去看,这样才能更全面的学习GC的源码,更深层次的学习GC的相关流程。 youngGC的触发时机是在创建对象时若申请不到内存,则会触发一次yo...
