垃圾收集器

1、串行回收器

        使用单线程进行独占式(暂停其他工作线程)的垃圾回收,对于并行能力较弱的计算机,串行回收器的专注性和独占性往往有更好的性能表现。根据作用堆空间的不同,分为新生代串行回收器和老年代串行回收器。

        新生代串行回收器使用复制算法,逻辑处理高效且没有线程切换的开销,在单CPU或并发能力较弱的场合,它的性能表现可以超过并行回收器和并发回收器。是运行在client模式下的虚拟机默认的新生代垃圾收集器。

        一次新生代串行回收器的工作输出日志如下所示。

         老年代串行回收器使用标记压缩算法,可以和多种新生代回收器配合使用,也可以作为CMS回收器的备用回收器。       

        一次老年代串行回收器的工作输出日志如下所示。

        可以使用如下参数配置串行回收器。

        -XX:+UseSerialGC:新生代、老年代都使用串行回收器;

        -XX:+UseParNewGC:新生代使用ParNew回收器、老年代使用串行回收器;        

        -XX:+UseParallelGC:新生代使用ParallelGC回收器、老年代使用串行回收器。

2、并行回收器

        使用多个线程同时进行垃圾回收,对于并行能力强的计算机可以有效缩短垃圾回收所需的时间。

        新生代ParNew回收器只是简单的将串行回收器多线程化,它的算法、回收策略和新生代串行回收器一样。因此在并发能力比较强的CPU上,它产生的停顿时间要短于串行回收器,而在单CPU或并发能力较弱的系统中,由于多线程的压力,它的表现很可能比串行回收器差。

         一次新生代ParNew回收器的工作输出日志如下所示。

        可以使用如下参数配置ParNew回收器。

        -XX:+UseParNewGC:新生代使用ParNew回收器、老年代使用串行回收器;

        -XX:+UseConcMarkSweepGC:新生代使用ParNew回收器、老年代使用CMS回收器。

        -XX:ParallelGCThreads:指定新生代ParNew回收器工作时的线程数量,一般与CPU数量相当。默认情况下,CPU个数小于8时,参数的值等于CPU数量,CPU个数大于8时,参数的值为3+((5*CPU_Count)/8)。
        新生代ParallelGC回收器和ParNew回收器一样是个多线程、独占式的回收器,也使用复制算法,不同的是,它非常关注系统的吞吐量。

        一次新生代ParallelGC回收器的工作输出日志如下所示。

        老年代ParallelOldGC回收器使用标记压缩算法,在JDK 1.6中才可以使用。 

        一次老年代ParallelOldGC回收器的工作输出日志如下所示。

        可以使用如下参数配置ParallelGC回收器。

        -XX:+UseParallelGC:新生代使用ParallelGC回收器、老年代使用串行回收器;

        -XX:+UseParallelOldGC:新生代使用ParallelGC回收器、老年代使用ParallelOldGC回收器;

        -XX:ParallelGCThreads:指定ParallelGC回收器工作时的线程数量。

        ParallelGC回收器提供了-XX: MaxGCPauseMillis(值N为大于零的毫秒数,代表最大垃圾收集停顿时间)和-XX: GCTimeRatio(值N为大于0小于100的整数,1/(1+N)代表垃圾收集时间占总时间的比率,默认为99,即允许最大1/(1+99)的垃圾收集时间)两个参数用于精确控制吞吐量。缩短停顿时间是以牺牲吞吐量和新生代空间为代价的,如系统原来的新生代空间为500M,10s收集一次,一次停顿100ms,则吞吐量为99%,现在参数的值改为70,则系统调整新生代空间为300M,5s收集一次,吞吐量为98.6%。

        -XX:+UseAdaptiveSizePolicy参数用于启用/关闭虚拟机的自适应调节策略,开启之后,只需要把基本的内存数据设置好(如最大堆 -Xmx),再使用-XX: MaxGCPauseMillis或-XX: GCTimeRatio参数给虚拟机设置一个优化目标,那么具体细节参数的调节工作就有虚拟机完成了。虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整细节参数(新生代大小-Xmn、Eden与Survivor区的比率-XX:SurvivorRatio、晋升老年代对象年龄-XX:PretenureSizeThreshold等)以提供最适合的停顿时间和最大的吞吐量。

        

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值