关于JVM 的GC收集器

JVM虚拟机中如何进行内存回收,是由虚拟机所采用的GC收集器有关,目前为止,没有最好的垃圾收集器的说法,只有根据具体应用选用最合适的垃圾收集器。

主要分为7大类

(1)Serial收集器

特点:单线程收集器,在进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束,适合于单个CPU环境。

参数设置:

JVM运行在Clinet模式下的默认收集器,设置如下参数:

-XX:+UseSerialGC

则使用:Serial + Serial Old 的收集器组合进行内存回收。

 

(2)ParNew收集器

特点:Serial收集器的多线程版本

参数设置:

设置如下参数:

-XX:+UseParNewGC

则使用:ParNew + Serial Old 的收集器组合进行内存回收。

 

(3)ParallelScavenge 收集器

特点:达到一个可控制的吞吐量(Throughput)。所谓吞吐量,指的是CPU用于运行代码的时间与CPU总消耗时间的比值。即:吞吐量 = 运行用户代码时间/(运行用户代码时间 + 垃圾收集时间),比如,虚拟机总共运行花了100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。(吞吐量优先收集器

参数设置:

JVM运行在Server模式的默认收集器,设置如下参数:

-XX:+UseParallelGC

则使用:Parallel Scavenge + Serial Old(PS MarkSweep)的收集器组合进行内存回收。

 

(4)SerialOld 收集器

特点:Serial收集器的老年代版本,是一个单线程收集器(无法充分利用服务器多核CPU的处理能力)。在Client模式下,作为Serial收集器的老年代使用。在Server模式下,可以与Parallel Scavenge收集器配合使用。

 

(5)ParallelOld 收集器

特点:Parallel Scavenge收集器的老年代版本,使用多线程和“标记-整理”算法。以前新生代如果选择了Parallel Scavenge,则老年代收集器只能使用Serial Old,而Serial Old在服务端性能不佳,导致Parallel Scavenge的吞吐量收到影响。

如果注重高吞吐量和对CPU资源利用率,优先考虑Parallel Scavenge + Parallel Old收集器。

参数设置:

设置如下参数:

-XX:+UseParallelOldGC

则使用:Parallel Scavege + Parallel Old的收集器组合进行内存回收。

 

(6)CMS收集器

特点:CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间的收集器。

应用场合:互联网网站或者B/S系统的服务端上(重视:服务器响应速度,希望停顿时间短,给用户较好的体验)。

参数设置:

-XX:+UseConcMarkSweepGC

则使用:ParNew + CMS + Serial Old 的收集器组合进行内存回收。

注意:这里有两个老年代收集器CMS和Serial Old,Serial Old 收集器作为CMS收集器出现Concurrent Mode Failure失败后的备用老年代收集器使用。

 

(7)G1收集器

特点:G1 是一种面向服务端应用的垃圾收集器,追求低停顿。G1 发布时间短,还没有经过实际的应用考验。追求低停顿,CMS 和 G1相比,CMS 仍然是首选的。

参数设置:

-XX:+UseG1GC

 

总结:

1、使用Parallel Scavenge + Parallel Old收集器,设置参数如下:

-XX:+UseParallelGC

-XX:+UseParallelOldGC

2、使用ParNew + CMS + Serial Old 收集器

-XX:+UseConcMarkSweepGC

上述,各个垃圾收集器的关系如下图,其中,连线表示可以组合使用。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值