JVM内存分析系列(八)垃圾收集器介绍及性能指标

内存回收的具体实现。
停顿时间越短就越适合需要与用户交互的程序,良好的响应速度能提升用户的体验;而高吞吐量则可以最高效率的利用CPU时间,尽快的完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。
GC停顿时间缩短是以牺牲吞吐量和新生代空间来换取的:系统把新生代调小一些,收集100MB的新生代肯定比收集1000MB的新生代快,这也直接导致垃圾收集器发生的更频繁,原来10秒收集一次,每次停顿100毫秒,现在5秒收集一次,每次停顿70毫秒,停顿时间在下降,但吞吐量也下降了。

[size=xx-large]HotSopt JVM1.6中垃圾收集器的结构图[/size]
如果2个收集器之间存在连线,说明他们可以搭配使用。
[img]http://dl2.iteye.com/upload/attachment/0092/6590/811f02ac-4afb-390b-975b-f886de0b6e83.jpg[/img]


[size=xx-large]Serial收集器[/size]
新生代收集器,“stop the word”,单线程收集器。适合client,而且对于收集几十M内存来说停顿极短,尤为高效使用。不存在多线程上下文切换的浪费。
[img]http://dl2.iteye.com/upload/attachment/0092/6593/1b5ab60f-b081-3659-ac23-c51c1b42c8f1.jpg[/img]


[size=xx-large]ParNew收集器[/size]
新生代收集器,是Serial收集器的多线程版本的并行收集器。但也是“stop the word”。在server上多CPU环境的首选的新生代收集器。
[img]http://dl2.iteye.com/upload/attachment/0092/6595/c162bdcd-90d9-39b2-a36d-2cbecf6c7eec.jpg[/img]


[size=xx-large]Parallel Scavenge收集器[/size]
新生代收集器,并行的多线程收集器。该收集器目标是提高吞吐量。也叫吞吐量优先收集器。同时支持自适应策略。


[size=xx-large]Serial Old收集器[/size]
年老代收集器,是Serial收集器的年老代版本。使单线程和标记-整理算法。同理更适用于client的单CPU单线程的模式。
[img]http://dl2.iteye.com/upload/attachment/0092/6599/e35f3097-8383-3af4-bbaa-7c6e4bf02560.jpg[/img]


[size=xx-large]Parallel Old收集器[/size]
年老代收集器,是Parallel Scavenge收集器的年老代版本。使用多线程和标记-整理算法。主要是服务端模式下和Parallel Scavenge收集器组合使用。
[img]http://dl2.iteye.com/upload/attachment/0092/6617/36dceaa6-cbdb-31ae-bf80-170bc1676800.jpg[/img]


[size=xx-large]CMS收集器(Current Mark Sweep)[/size]
年老代收集器,是一种以获取最短回收停顿时间为目标的收集器。尤其重视服务的响应速度。基于标记-清除算法实现。由于收集完成后会产生碎片,所以要开启 -XXUseCMSCompactAtFullCollection开关参数,用于在Full GC之后,进行一次碎片整理。内存整理的时候无法并发的。
他运作分为4个阶段
1 初始标记
2 并发标记
3 重新标记
4 并发清除

他的主要有点:并发收集、低停顿
缺点:
对CPU资源非常敏感
无法处理浮动垃圾
收集结束后会产生大量的空间碎片
[img]http://dl2.iteye.com/upload/attachment/0092/6619/446a6948-8100-314c-8afb-f0a3b98ef16c.jpg[/img]


[size=xx-large]G1收集器(Garbage First)[/size]
与CMS算法相比,有2个显著的改进。
1 基于标记-整理算法。
2 非常精确的控制停顿
G1将整个JAVA堆(包括新生代、老年代)划分为多个固定大小的独立区域,并跟踪垃圾堆积程度,在后台维护一个优先列表,每次根据允许的收集时间,有限回收垃圾最多的区域。


[size=xx-large]附录[/size]
并行(Parallel):多线程垃圾收集器工作的时候,停止用户工作。
并发(Concurrent):用户线程和垃圾收集器同时工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猫头哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值