美文网首页
垃圾收集算法

垃圾收集算法

作者: 我看Android | 来源:发表于2020-06-10 17:08 被阅读0次

随笔

1.标记-清理算法

分为"标记" 和"清理" 两个阶段:首先标记出所有需要回收的对象,然后进行统一回收

不足之处:效率低,标记-清理后会产生大量的不连续内存碎片,在后续提前引起另一次垃圾收集操作

2. 复制算法

将内存区域划分为容量相等的两份,每次只使用一份,当一份内存区域用完了就把该内存区尚且存活的对象复制到另一块内存区域 然后将当前内存区域完全回收
优点:实现简单,效率高,不用考虑会产生内存碎片
缺点:可用内存减少一半 垃圾收集动作频率增加。在对象存活率较高时就要多次进行复制操作 效率变低

优化:Java可以堆分为新生代与老年代,细致点还可以划分为Eden空间,From Surviver空间,To Surviver 空间等,由于新生代存活时间短,将内存区域不进行平分
问题:对象是如何划分到新生代与老年代
对象优先在Eden空间上分配
大对象(需要大量连续内存空间的Java对象)会直接分配进入老年代
长期存活的对象(默认经过15次GC)将进入老年代

3.标记-整理算法

标记过程与标记-清理算法一样,但后续并不是直接回收而是让所以存活对象向一端移动,然后清除掉边界以外的内存

4.分代收集算法

根据对象存活周期不同将内存区域华为若干块,将Java堆分为新生代与老年代,根据不同的年代选用不同的算法。新生代存活率低,采用复制算法。老年代对象村汇率高,没有额外内存空间对他进行分配担保,采用标记-整理-或标记-清理算法进行回收

相关文章

  • 第三章(二)GC

    本篇主要讲 垃圾收集算法 、 HotSpot的的算法实现 和 垃圾收集器。 垃圾收集算法 标记-清除算法 Mark...

  • JVM垃圾回收

    GC垃圾回收流程 垃圾收集算法 垃圾回收算法 引用类型 垃圾回收的时机 1.垃圾收集算法 (1).引用计数算法含义...

  • 4种垃圾收集算法及8种垃圾收集器

    文主要介绍4种垃圾收集算法及8种垃圾收集器: 垃圾收集算法 1、标记-清除算法(Mark-Sweep) “标记-清...

  • JVM学习笔记四【垃圾收集器】

    前文我们针对垃圾收集的区域,垃圾收集的对象,垃圾收集算法进行了介绍;而垃圾收集器就是收集算法的实现,如下是HotS...

  • JVM第四天-垃圾收集器

    一、垃圾收集器概述 垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,不同...

  • JVM:这是一份全面 & 详细的 (GC)垃圾收集算法

    前言 不同的内存区域采用不同的垃圾收集算法 而不同垃圾收集算法决定了垃圾收集的效率 & 效果 本文将全面讲解垃圾收...

  • Jvm之CMS垃圾收集器

      这篇文章主要介绍JVM的CMS垃圾收集器,以及JVM提供的垃圾收集算法。 一、垃圾收集算法   JVM提供的三...

  • JVM堆的分配和回收

    1. 内存分配 现代收集器基本都采用分代收集算法 1.1 概述 垃圾收集 垃圾回收 垃圾收集器 GC 算法是内存回...

  • Java虚拟机垃圾收集算法实现

    垃圾收集算法实现 垃圾收集算法实现必须考虑运行效率。 对象存活判定算法实现 对象存活判定算法都使用可达性分析算法实...

  • 垃圾收集

    垃圾收集算法 标记清除法:循环应用 引用计数法:空间碎片 复制算法:新生代使用该算法进行垃圾收集 标记压缩算法:老...

网友评论

      本文标题:垃圾收集算法

      本文链接:https://www.haomeiwen.com/subject/lqsptktx.html