GC垃圾回收的那些算法

算法内功之剖析标记清除
标记清除算法
首先是标记阶段,标记阶段通过GC root 分析对象是否需要回收,把需要回收的对象进行标记,完了再gc时进行回收。也是最基础的收集算法,其他几种都是在这个基础之上进行改进。
算法不足:
1效率问题,标记和清除的效率都不高。
2容易产生内存碎片,在分配对象时空间不足还会多次触发gc
算法图示如下所示:
在这里插入图片描述

算法内功之剖析复制算法
复制算法主要是为了解决效率问题,算法的思想是将内存划分为同样大小的两块,每次将存活的对象直接复制到另一边,把之前的不可达对象直接清理掉。然后移动堆顶指针,顺序分配就好。
算法图示如下所示:
在这里插入图片描述

但是我们用的jdk(1.8)为了更好的使用内存,复制算法并没有把内存分半,因为年轻代对象很快会销毁,所以把年轻代分为eden from to
如下面一段日志;
[GC (Allocation Failure) [PSYoungGen: 1870K->776K(14848K)] 22350K->21264K(49152K), 0.0031857 secs] [Times: user=0.00 sys=0.00, real

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晴天M雨天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值