老年代垃圾回收器

- 工作线程:拼命地产生对象,对象存于eden区。
- 年轻代垃圾回收器:年轻代满了,触发ygc,把存活对象复制到old区。
- 老年代垃圾回收器:先把所有工作线程挂起,所有工作线程进入安全点SafePoint后,当前处于STW状态。
- gc线程:
先说下年轻代的回收,它把年轻代的垃圾复制到老年代,复制完后,再清空年轻代。
也采用复制算法?如果采用复制算法,那复制到哪里呢?是不是没地方复制了?那怎么办呢?
那就只能就地解决了,即采用标记整理算法。先标记,后整理
Serial Old老年代垃圾回收器
Serial Old是Serial收集器的老年代版本。
特点:
- 分代:老年代
- 工作方式:单线程串行回收
- 算法:标记整理算法
- 性能分析:停顿时间短(响应速度快)
应用场景:
单CPU单核的环境下,适用于Client模式下的年轻代收集器。
Parallel Old老年代垃圾回收器
Parallel Old它是Parallel收集器的老年代版
特点:
- 分代:老年代,
- 工作方式:多线程并行独占式回收
- 算法:标记-整理算法
- 性能设计:高吞吐量
- jdk8默认垃圾收集器。
应用场景:
高吞吐量适用于多核多CPU的环境下,服务端的高并发(例如,互联网微服务)的老年代收集器
使用参数:
-XX:+UseParallelOldGC,表示老年代为Parallel Old收集器。
-XX:ParallelGCThreads,表示设置gc线程数量,默认CPU核数。
