java垃圾收集器部分

引用计数  入度 不等于0 说明有人在引用
         循环引用  入度不等于 但这两个对象相互引用
可达性分析  GC root 达到或间接到达的对象 就不是垃圾对象


graph  reachable unreachable

可达性分的算法标记reachable unreachable
mark标记 
sweep清除
标记-清除算法
特点   遍历整个堆内存空间 比较耗时 会有空间碎片

标记-整理
  compact move 比上面的算法消耗更多时间 但碎片少了
  解决fragmented问题

标记 复制

UseSerialGC
单线程垃圾收集
适合单核CPU场景
适用场景:CPU核数比较少 内存空间较少 100M
  新老年代之分  新生代用复制算法 老年代用标记整理算法

  灰色 stop the world 
     垃圾收集线程会暂停业务代码线程
  影响: 客户端响应时间变慢

如果业务代码线程继续执行 意味可能获取到一些垃圾对象
因为堆中的对象地址可能会变动  不能让业务代码线程一直使用


Parallel GC
并行的GC  grabage collection
依然有stw
多线程收集
也有新老年代收集器

cms GC
concurrent mark sweep gc
只适用于老年代
停顿时间相对比较短 
500ms左右

G First
停顿时间 并且很好的解决空间碎片问题
适用于新老年代
理想停顿时间200ms左右

Z GC
停顿时间 几毫秒
有一些牺牲吞量


垃圾收集器分类:
串行 Serial
并行 Parallel  更多关注吞吐量
并发 垃圾收集线程和业务代码线程会共同执行 CMS G1 ZGC 更加关注停顿时间

吞吐量和停顿时间 也是评判一个垃圾收集器的指标
throughput  一个给定的时间内完成的任务
responsiveness 停顿时间 响应的时间多快


垃圾收集器吞吐量等于
业务代码线程执行时间/(业务代码线程执行时间+垃圾收集线程执行时间)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值