JVM中的垃圾收集算法

标记-清除算法

首先标记出所有需要回收的对象,在标记完成后,统一回收掉所有被标记的对象,也可以反过来,标记存活的对象,统一回收所有未被标记的对象。标记过程就是对象是否属于垃圾的判定过程

缺点

  • 第一个是执行效率不稳定

  • 第二个是内存空间的碎片化问题

标记-复制算法

它将可用 内存按容量划分为大小相等的两块,每次只使用其中的一块。当这一块的内存用完了,就将还存活着 的对象复制到另外一块上面,然后再把已使用过的内存空间一次清理掉。

优点:

  • 实现简单,运行高效

缺点:

  • 可用内存缩小为了原来的一半

标记-整理算法

其中的标记过程仍然与"标记-清除"算法一样,但后续步骤不是直接对可 回收对象进行清理,而是让所有存活的对象都向内存空间一端移动,然后直接清理掉边界以外的内存

优点:

  • 可以解决内存碎片问题,并且不需要暂停应用程序运行

缺点:

  • 需要大量的时间和空间:标记整理算法需要大量的时间和空间来进行对象移动和地址更新操作。

  • 可能会导致性能问题:由于需要遍历整个内存空间,标记整理算法在处理大量内存和大量对象时,可能会导致性能问题。

相关推荐
算AI9 小时前
人工智能+牙科:临床应用中的几个问题
人工智能·算法
hyshhhh10 小时前
【算法岗面试题】深度学习中如何防止过拟合?
网络·人工智能·深度学习·神经网络·算法·计算机视觉
杉之11 小时前
选择排序笔记
java·算法·排序算法
烂蜻蜓11 小时前
C 语言中的递归:概念、应用与实例解析
c语言·数据结构·算法
OYangxf11 小时前
图论----拓扑排序
算法·图论
我要昵称干什么12 小时前
基于S函数的simulink仿真
人工智能·算法
AndrewHZ12 小时前
【图像处理基石】什么是tone mapping?
图像处理·人工智能·算法·计算机视觉·hdr
念九_ysl12 小时前
基数排序算法解析与TypeScript实现
前端·算法·typescript·排序算法
守正出琦12 小时前
日期类的实现
数据结构·c++·算法
ChoSeitaku12 小时前
NO.63十六届蓝桥杯备战|基础算法-⼆分答案|木材加工|砍树|跳石头(C++)
c++·算法·蓝桥杯