G1(垃圾first)回收器

G1垃圾回收器基本知识及原理解析 - 走看看

主要特点

1. 按照region分块,每个块标记S,E,O,H

2. 按照性价比进行回收,分别统计每个块的回收空间和时间,按照性价比进行排序

3. 可以指定用户停顿时间,动态回收垃圾大小。默认200ms

缺点

如果存在跨代引用如何解决?
针对于年轻代的region我们每次都会进行回收,所以不需要考虑年轻代指向老年代。
针对于老年代指向年轻代的引用我们如何选择(如果不管则使用整个堆的GC root扫描),这里提出的思想是记忆集rset(remember set),
G1是对每个region维护了一个rset,记忆集中维护了指向自己的region的指针,并且标记指针分别在那些卡页的范围之内。由于G1使用了很多的region(每个region都有一个rset),所以G1使用了较高的内存,基本占用Java对内存的10%~20%的额外内存来维持收集器的工作。

猜你喜欢

转载自blog.csdn.net/qq_29857681/article/details/125571888