JVM中的垃圾收集算法

标记-清除算法

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

缺点

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

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

标记-复制算法

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

优点:

  • 实现简单,运行高效

缺点:

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

标记-整理算法

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

优点:

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

缺点:

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

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

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-25 16:08:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-25 16:08:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-25 16:08:03       82 阅读
  4. Python语言-面向对象

    2024-01-25 16:08:03       91 阅读

热门阅读

  1. 数据结构——链式栈

    2024-01-25 16:08:03       59 阅读
  2. [力扣 Hot100]Day13 最大子数组和

    2024-01-25 16:08:03       58 阅读
  3. redis 分布式锁的原理

    2024-01-25 16:08:03       52 阅读
  4. uniapp使用uQRCode插件生成二维码的简单使用

    2024-01-25 16:08:03       55 阅读
  5. K8S的安全机制

    2024-01-25 16:08:03       60 阅读
  6. Shell条件判断与流控匹配

    2024-01-25 16:08:03       49 阅读