Java 垃圾回收之老年代垃圾回收器
Posted work hard work smart
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 垃圾回收之老年代垃圾回收器相关的知识,希望对你有一定的参考价值。
Serval Old收集器(-XX:+UseSerialOldGC, 标记-整理算法)
单线程收集,进行垃圾收集时,必须暂停所有工作线程
简单高效,Client模式下默认的老年代收集器
Parallel Old收集器(-XX:+UseParallelOldGC, 标记-整理算法)JDK 6后提供
多线程,吞吐量优先
CMS收集器(-XX:+UseConcMarkSweepGC, 标记-清除算法)
分为以下阶段
初始标记:stop-the-world
并发标记: 并发追溯标记,程序不会停顿
并发预清理: 查找执行并发标记阶段从年轻代晋升到老年代的对象
重新标记: 暂停虚拟机,扫码CMS堆中的剩余对象
并发清理: 清理垃圾对象,程序不会停顿
并发重置:重置CMS收集器的数据结构
这六个步骤中,初始标记和重新标记,会有短暂的stop-the-world
G1收集器(-XX:+UseG1GC, 复制+标记-整理算法)(年轻代和老年代都能用)
Garbage First 收集器的特点
并发和并行
分代收集
空间整合
可预测的停顿
将整个Java堆内存划分为多个大小相等的Region
年轻代和老年代不再物理隔离
以上是关于Java 垃圾回收之老年代垃圾回收器的主要内容,如果未能解决你的问题,请参考以下文章