JVM-垃圾、垃圾回收算法(2)

GC常用算法

1. 标记清除(Mark-Sweep)
image.png

image.png
  • 算法相对简单
  • 在存活对象较多的情况,下效率较高。
  • 两次扫描,第一次进行标记,第二次进行清理,效率偏低。
  • 容易产生碎片
2. 拷贝(Copying)
image.png

image.png
  • 适用于存活对象较少的情况
  • 只扫描一次,效率高,适合伊甸区
  • 没有碎片
  • 移动复制对象,需要调整对象引用
  • 空间浪费
3. 标记压缩(Mark-Compact)
image.png

image.png
  • 不会产生碎片,方便对象分配
  • 不会产生内存减半
  • 扫描两次
  • 需要移动对象,效率偏低
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 什么是garbage垃圾? 没有任何引用指向的一个对象或者多个对象(循环引用),就是垃圾 1.1 Java与...
    silence_J阅读 637评论 0 1
  • 垃圾回收.GC 1.垃圾判断算法 1.1 引用计数算法 给对象添加一个引用计数器,当有一个地方引用它,计数器加1,...
    飞行员阿越阅读 264评论 0 1
  • 1)可达性分析法(判断对象是否存活):当一个对象到GC Roots没有任何引用链相连时。GC Roots对象:虚拟...
    沐兮_d64c阅读 315评论 0 5
  • 垃圾回收器 什么是垃圾对象? 没有任何引用的对象。 如何发现垃圾对象? reference count 引用计数每...
    三不猴子阅读 564评论 0 4
  • JVM架构图分析 JVM被分为三个主要的子系统 (1)类加载器子系统(2)运行时数据区(3)执行引擎 1. 类加载...
    匆匆岁月阅读 1,030评论 1 19