JVM(四) 垃圾收集算法

8 篇文章 0 订阅

写前面几章节主要是为后面垃圾回收器优化做铺垫

经典的垃圾回收算法以下几种

一、标记--清除算法(Mark-Sweep) ( CMS回收器使用的算法 ,FullGc后可以配置内存整理)

图示:

回收前状态:

    

 

   

回收后状态:

优缺点:

       算法执行分为两个阶段标记与清除,所有的回收算法,基本都基于标记回收算法做了深度优化

       缺点:效率问题,内存空间碎片(不连续的空间)

 

二、复制算法(Copying) (Serial / ParNew / ParallelScavenge / SerialOld / ParallelOld 回收器使用的算法 )

图示:

回收前状态:

Eden内存空间 8

  

Survivor1空间(From空间)1

Survivor2空间(To空间) 1

Eden内存空间与Survivor空间 8:1

回收后状态:

Survivor1空间(From空间)1

Survivor2空间(To空间) 1

Eden内存空间与Survivor空间 8:1

优缺点:

         比较标记清除算法,避免了回收造成的内存碎片问题,

缺点:以局部的内存空间牺牲为代价,不过空间的浪费比较小,默认8:1的比例1是浪费的。

复制也有一定的效率与空间成本

 

三、标记整理算法(Mark-Compact) ( G1 回收器使用的算法)

图示:

回收前状态:

回收后状态:

 

优缺点:

避免了,空间的浪费,与内存碎片问题。

缺点:整理时复制有效率成本。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值