JVM GC垃圾收集器详解

垃圾收集器

GC主要用于JVM堆内存的管理自动化,分析需要回收的内存依靠的算法为可达性分析。

收集器 串行、并行or并发 新生代/老年代 算法 目标 适用场景
Serial 串行 新生代 复制算法 响应速度优先 单CPU环境下的Client模式
Serial Old 串行 老年代 标记-整理 响应速度优先 单CPU环境下的Client模式、CMS的后备预案
ParNew 并行 新生代 复制算法 响应速度优先 多CPU环境时在Server模式下与CMS配合
Parallel Scavenge 并行 新生代 复制算法 吞吐量优先 在后台运算而不需要太多交互的任务
Parallel Old 并行 老年代 标记-整理 吞吐量优先 在后台运算而不需要太多交互的任务
CMS 并发 老年代 标记-清除 响应速度优先 集中在互联网站或B/S系统服务端上的Java应用
G1 并发 both 标记-整理+复制算法 响应速度优先 面向服务端应用,将来替换CMS

算法:新生代复制算法;老年代只有cms用清除(名字写明了),其他全是标记-整理。

新生代何时进入老年代:

:年龄动态包分配

15岁(15次新生代回收)、动态年龄:某年龄对象占空间 > survivor一半,新生代回收时survivor装不下的直接进老年代(担保分配)。

你可能感兴趣的:(JVM GC垃圾收集器详解)