JVM之垃圾处理器以及内存分配

一、串行垃圾回收器
单线程进行垃圾回收,只有一个线程工作,并且java中的工作线程要暂停,等待垃圾回收完成;
二、并行垃圾回收器
在串行垃圾回收器的基础上增加了多线程,这样就可以缩短垃圾回收时间,但是进行垃圾回收时,工作线程也要暂停;
三、parauelGC垃圾回收器
在并行垃圾回收器的基础上,新增了两个和系统吞吐量相关的参数,使其更加灵活高效;
四、CMS垃圾回收器
多线程执行,使用标记清除算法(自动清理碎片),主要针对老年代,进行垃圾回收时,工作线程可以继续执行;
工作步骤:
  1. 初识标记
  2. 并发标记
  3. 预处理
  4. 重新标记
  5. 并发清理
  6. 重置
五、G1垃圾回收器
JDK1.7正式使用,orcle计划在1.9中设为默认的垃圾回收器,代替CMS,G1的设计原则:简化JVM的性能调优;
原理:取消了年青代和年老代的物理上的划分,而是把堆内存分为若干个区域,这些区域包含了逻辑上的年轻代和年老代,短期的巨大的对象不会被直接存储到老年区,而是被放到一个特殊的H区;
优点:不用单独对每个代设置,不用担心每个代内存是否够用,解决了碎片化问题,
G1垃圾回收器的三种模式(不同的条件下,触发不同模式):
  1. YongGC,在eden空间耗尽时会被触发,eden空间的数据移动到survivor中,如survivor空间不够,eden中部分数据会晋升到老年代;survivor区中的数据移动到新的survivor区中,也有部分晋升到老年代,;最终eden空间的数据为空,G1停止工作,应用线程继续工作;YongGC为了更快的找到年轻代中的根对象,G1引进了Rset的概念,作用是跟踪指向某个堆内的对象引用,
  2. MixedGC,当老年代大小占整个堆大小百分比达到该阈值时触发(默认45%);
  3. FullGC
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值