垃圾收集器
2017-01-15 16:42:09 0 举报
AI智能生成
登录查看完整内容
垃圾收集器
作者其他创作
大纲/内容
垃圾收集器
内存分配策略
1.优先在eden区域
2.大对象直接在老年代分配
3.长期存活的对象进入老年代
4.分配担保
5.动态对象年龄判断
新生代收集器
serial收集器
1.回收算法
复制算法
2.特点
1.单线程
2.Stop The World
ParNew收集器
1.与serial相比只是多线程,其他没有什么创新之处
2.除了serial,只有它能与CMS配合
Paraller Scavenge收集器
1.和其他算法为了减少停顿时间不同,该收集器是为了提高吞吐量(=运行用户代码时间/(代码时间+垃圾回收时间) ),减少停顿时间适合那些用户交互方面的jvm,提高系统的流畅性,而提高吞吐量是可以高效利用CPU时间,尽快完成计算任务
老年代收集器
serial old收集器
标记--整理
1.主要意义给client端的jvm使用
2.如果是在server端,可以有如下用途
1.在JDK1.5及之前的版本中与Paraller-Scavenge配合使用
2.作为CMS发生concurrent mode failure的备用方案
Paraller old收集器
1.是Paraller-Scavenge的Old版本
2.与Paraller_Scavenge 配合,提高系统吞吐率
3.若无它,只有serial old能和Parraller-Sc..配合,而前者会拖累后者,导致吞吐率下降
CMS收集器
标记--清除(Mark-Swap)
1.以获取最短回收停顿时间为目的
步骤
1.初始标记(需STW)
2.并发标记
3.重新标记(需STW)
4.并发清除
缺点
1.占CPU资源,虽然不会导致用户线程停顿,但是也是会占用CPU资源
不区分
g1收集器
特点
1.面向服务端
2.利用多核CPU减少STW时间,部分其他收集器需要暂停线程的GC操作,它不需要暂停java线程。
3.虽然不需要配合其他收集器就可以管理整个堆,但是它对不同存活时间的对象有不同的方式去处理以获得好的效果
4.整体上标记-整理,局部上复制算法,不会产生碎片
5.建立可预测的停顿模型,能让使用者指定在M时间内回收停顿时间不超过N
6.后台维护一个regin垃圾大小和回收这个regin需要时间的比值 的一个表,每次优先回收收益最大的区域
1.初始标记
3.最终标记
4.筛选回收
0 条评论
回复 删除
下一页