分代收集理论
什么是分代?当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)的理论进行设计,所谓分代,就是将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象熬过垃圾收集过程的次数)分配到不同的区域之中存储。分代的目的?分代的目的是垃圾收集器可以更快的收集“死掉”的对象。 如何判定对象已死?请参考 https://cloud.tencent.c
·
什么是分代?
当前商业虚拟机的垃圾收集器,大多数都遵循了“分代收集”(Generational Collection)的理论进行设计,所谓分代,就是将Java堆划分出不同的区域,然后将回收对象依据其年龄(年龄即对象熬过垃圾收集过程的次数
)分配到不同的区域之中存储。
分代的目的?
分代的目的是垃圾收集器可以更快
的收集“死掉”的对象。 如何判定对象已死?请参考 https://cloud.tencent.com/developer/article/1694697
如何分代?
HotSpot JVM 将堆分为年轻代(Young Generation)和老年代(Old Generation)两个区域
新生代收集(Minor GC/Young GC):指目标只是新生代的垃圾收集。
老年代收集(Major GC/Old GC):指目标只是老年代的垃圾收集。目前只有CMS收集器会有单独收集老年代的行为。另外请注意“Major GC”这个说法现在有点混淆,在不同资料上常有不同所指,读者需按上下文区分到底是指老年代的收集还是整堆收集。
混合收集(Mixed GC):指目标是收集整个新生代以及部分老年代的垃圾收集。目前只有G1收集器会有这种行为。
整堆收集(Full GC):收集整个Java堆和方法区的垃圾收集。
年轻代分为了三部分:1个Eden区和2个Survivor区(分别叫from和to)。默认比例为8:1
年轻代为何再次划分?
更多推荐
已为社区贡献15条内容
所有评论(0)