java中的垃圾回收算法与垃圾回收器( 二 )


java中的垃圾回收算法与垃圾回收器

文章插图
java中的垃圾回收算法与垃圾回收器

文章插图
serial串行收集器serial回收器是一个串行单线程回收器 , 在进行垃圾回收的时候必须暂停用户工作线程 , 直到回收线程处理完成 , 每次回收必然会STW 。比较适合跑在client端应用
java中的垃圾回收算法与垃圾回收器

文章插图
ParNew收集器ParNew回收器是新生代垃圾回收器, 就是serial的多线程版本 其它基本上serial差不多的 , 在ps回收器没有出来之前parNew+cms是服务器端首选
java中的垃圾回收算法与垃圾回收器

文章插图
Parallel Scavenge收集器常说的ps 收集器就算它 , ps是一个新生代收集器采用复制算法 , 多线程并行收集 。是jdk8的默认新生代回收器 。
看起来和parNew有点一样 反正性能就是比它要强 , 在应用吞吐量方面更优秀 。ps一般是和Parallel Old配合使用
java中的垃圾回收算法与垃圾回收器

文章插图
Serial Old收集器Serial Old收集器是Serial的老年代版本 , 同样它也是单线程收集 , 基于标记-整理算法 , 工作原理可以参考serial 。
Parallel Old收集器parallel old收集器是ps的老年代版本 是多线程收集器 基于标记-整理算法 弥补了serial old单线程的不足 , 工作原理参考ps收集器工作流程图 。ps+po是jdk8默认的组合 也是我在项目中实践最多的组合 。
CMS收集器cms从jdk1.4开始引入,算是里程碑GC产品,开启了Java领域并发

经验总结扩展阅读