JVM 垃圾回收

垃圾清除算法:
   标记清除算法:标记所有的要回收对象,回收,问题是会产生内存碎片


   标记整理算法:第一步标记出所有存活对象,移到空间一端,然后清理这个空间
                 以外的内存


   复制算法:内存分两块,一次用一块,一次回收一块




YOUNG区回收:serial回收器、ParNew、 ParallelScavenge
            
             serial回收只是单线程,会stop the world
             
             ParNew是多线程收集垃圾,还是会stop the world
     
             parallelScavenge:侧重吞吐量,也是多线程,也会stop the world
                               在收集时,允许更多的事务。可能会间隔的收集。






OLD区回收:Serial Old回收器、Parallel OLD回收器、CMS回收器
           
           Parallelold 回收器:也是并行回收,侧重吞吐量。parallel old
                             和parallel scavenge合用,可以实现最大吞吐量。
                             不是网站秒杀,只是应用程序实现后台计算的,
                              可以这两个组合使用。可能导致停顿的时间最大。


           CMS:是现在用的最多的。多并发,低停顿。是用来减少用户响应的
                最少时间。CMS对CPU资源敏感,CMS默认启动的回收线程数是
                (CPU数量+3)/4;无法处理浮动垃圾,出现ConcurentMode Failure
                失败而导致另一次FullGC,默认老年代使用了68%的空间就会被激活
                执行回收;收集结束会产生大量空间碎片,使得不能容纳新的大对象。
                因此两个参数:-XX:+UseCMSCompactAtFullCollection,是否进行整理、
                -XX:CMSFullGCcBeforeCompaction,收集几次了再进行整理            
                


新出来的G1回收,可用于young区可用于old区,1代表first的意思。




一个简单的例子:
   -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -Xms128m -Xmx128m -Xmn100M 
   -XX:SurvivorRatio=8
   
   使用ParNewGC: -XX:+UseParNewGC;使用parallel scavenge:-XX:UseParallelGC
   使用parallel old:-XX:+UseParallelOldGC   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值