Skip to content

Latest commit

 

History

History
33 lines (17 loc) · 1.71 KB

jvmg1-shou-ji-qi-ff08-g1-shou-ji-ce-lve-ff09.md

File metadata and controls

33 lines (17 loc) · 1.71 KB

G1收集策略

虽然在G1收集器里面将整个的内存区域都混合在了一起,但是其本身依然也是小范围内要进行年轻代与老年代的区分,也就是说依然会采用不同的GC方式来处理不同的内存子区域。

所有的垃圾内存的保存区域有可能会被清空后重新分配。

但是老年代的处理流程不一样,因为任何时候如果要想标注老年代的不用内存空间,都需要进行一些暂停,而G1之中的最大好处在于它不用进行全内存扫描,只需要按照区域来进行扫描即可。

  1. 先进行内存扫描,假设扫描之后发现这几块内存空间是不要的,因为这几块内存区域内存放着的都是一些长期不用的垃圾对象。扫描的过程中要经过扫描,并发标记,进行一系列操作过程。

  1. 当走到重新标记阶段的时候,无用的对象已经被清除了。

  1. 在老年代重新标记完成之后,为了保证整个内存空间能够有所释放,还需要对一些年轻代进行清理和拷贝。

  1. 最终清理完毕之后,整个内存区域之中的垃圾空间就减少了。

GC之中的主要操作手段,按照区域清空,清空之后把所有区域进行重新分配和重新排列,以达到垃圾回收目的,这样的垃圾处理性能一定是最快的,停顿时间也一定是最短的。以上就是G1的垃圾收集器的流程。