垃圾回收算法对比

本文详细介绍了垃圾回收(GC)的各种算法,包括标记-清除、标记-压缩、引用计数、复制算法、保守式GC、分代回收和增量式GC。分析了每种算法的优缺点,如标记-清除算法的碎片化问题、引用计数算法的循环引用问题等,旨在帮助读者理解GC的工作原理和性能指标。
摘要由CSDN通过智能技术生成

垃圾回收GC的全拼是 Garbage Collection 其在维基百科的定义是: 在计算机科学中,垃圾回收(英语:Garbage Collection,缩写为GC)是一种自动的内存管理机制。当一个电脑上的动态内存不再需要时,就应该予以释放,以让出内存,这种内存资源管理,称为垃圾回收(garbage collection)

垃圾回收算法有多种,先看看几个评价垃圾回收算法性能的几个方面,再具体看看各种算法的优缺点

  • 吞吐量 throughput
  • 最大暂停时间
  • 堆使用效率
  • 访问的局部性

一、 标记-清除算法 Mark-Sweep GC

如字面意思 mark-sweep 分为两个阶段:

  1. 标记阶段:从根集合出发,将所有活动对象及其子对象打上标记
  2. 清除阶段:遍历堆,将非活动对象(未打上标记)的连接到空闲链表上

优点

实现简单, 容易和其他算法组合

缺点

  • 碎片化, 会导致无数小分块散落在堆的各处
  • 分配速度不理想,每次分配都需要遍历空闲列表找到足够大的分块
  • 与写时复制技术不兼容,因为每次都会在活动对象上打上标记

二、标记-压缩 Mark-Compact

和“标记-清除”相似,不过在标记阶段后它将所有活动对象紧密的排在堆的一侧(压缩),消除了内

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值