HotSpot垃圾收集器详解
2019-02-27 11:49:14 21 举报
AI智能生成
HotSpot垃圾收集器详解
作者其他创作
大纲/内容
1.新生代垃圾收集器
Serial垃圾收集器
1.单线程,只开启一条线程进行垃圾回收,并在垃圾回收过程中停止一切用户线程,从而用户请求或图形化界面会出现卡顿
2.适合客户端应用,一般客户端应用所需内存较小,不会创建太多对象,而且堆内存不大,因此垃圾回收的时间比较短。
3.简单高效,因为只有一条GC线程,因此避免了切换线程的开销,从而简单高效。
4.采用复制算法。
ParNew垃圾收集器
3.与Serial相比,多CPU环境下性能会有一定的提升,但是切换线程需要有额外的开销,因此在单CPU环境中不如Serial
5.追求降低停顿时间,合交互式应用
1.parNew是Serial的多线程版本,由多条GC线程并行进行垃圾回收,但清理过程仍然需要停止一切用户线程,但是速度更快。
2.适合多CPU环境。
3.与Serial相比,多CPU环境下性能会有一定的提升,但是切换线程需要有额外的开销,因此在单CPU环境中不如Serial
4.采用复制算法。
5.追求降低停顿时间,合交互式应用
Parallel Scavenge垃圾收集器
1.Parallel Scavenge 和 ParNew一样都是多线程
2.复制算法进行垃圾回收
3.Parallel Scavenge追求CPU吞吐量,适合没有交互的计算机
2.老年代垃圾收集器
Serial Old垃圾收集器
1.Serial Old收集器是Serial的老年代版本,都是单线程收集器
2.回收算法使用标记-整理法
Parallel Old垃圾收集器
1.是Paraller Scavenge的老年代版本
2.一般搭配使用追求CPU吞吐量
CMS垃圾收集器
1.CMS垃圾收集器是一款追求停顿时间的老年代收集器
2.他在垃圾收集的时候使用户线程和GC线程并行执行,因此垃圾收集过程中用户不会感受到明显的卡顿
3.存在切换线程的额外开销,消耗时间变长。
3.通用垃圾收集器
G1垃圾收集器
1.追求停顿时间
2.多线程GC
3.面向服务端应用
4.标记-整理 和 复制算法 合并,不会产生碎片内存。
5.可对整个堆进行垃圾收集
6.可预测停顿时间。
G1的内存模型
G1垃圾收集器没有没有新生代和老年代的概念,而是将堆划分成为一块独立的Region
当进行垃圾收集时,首先估计每个Region的垃圾数量
每次都从垃圾回收价值最高的Region开始回收,因此可以获得最大回收效率。
0 条评论
下一页