JVM垃圾回收算法和垃圾回收器是什么?
admin
2023-02-20 05:40:05
0

垃圾回收算法

  1. 复制算法(Copying)
  2. 标记-清除算法(Mark-Sweep)
  3. 标记-整理算法(Mark-Compact)
    复制算法:
    优点,效率高,不会出现内存碎片,
    缺点,内存利用率低,只能用一半,存活对象较多时效率明显下降
    Eden  from to 8:1:1,java中大部分对象朝生夕死,所以只有10%的对象需要回收,10%(from)+ 10%(to,预留)
    JVM垃圾回收算法和垃圾回收器是什么?
    标记清除算法:
    优点:空间利用率100%
    缺点:标记和清除效率都不高,会产生大量不连续的内存碎片
    过程:1.首先标记所有需要回收的对象 2.统一回收被标记的对象
    JVM垃圾回收算法和垃圾回收器是什么?
    标记整理算法:
    优点:利用率100%,没有内存碎片
    缺点:标记和清除效率都不高,效率相对标记-清除要低
    过程:标记后不直接进行清理,而是把存活对象向一端移动,然后清理端边界外的内存。
    JVM垃圾回收算法和垃圾回收器是什么?

    垃圾回收器

    分代算法:根据各个年代特点选用不用垃圾回收算法
    新生代:采用复制算法
    老年代:使用标记-整理或标记-清除算法
    JVM垃圾回收算法和垃圾回收器是什么?
    并行:垃圾收集的多线程同时进行
    并发:垃圾收集的多线程和应用的多线程同时进行

回收器
1,Seral/Serial Old : 单线程
2,ParNew: 和Seral基本没区别,多线程
3,Parallel Scavenge(ParallerGC)/Parallel Old : 关注吞吐量的收集器,主要用于后台运算而不需要太多交互的任务。
4,CMS:一种最短停顿时间的收集器。使用标记清除算法
5,G1:jdk1.9以后推荐使用,跨越的新生代和老年代。使用标记整理和化整为零
所有新生代都是用复制算法,老年代 标记整理和标记清除

Concurrent MarkSweep(CMS):

-XX:+UseConcMarkSweepGC,应用于B/S系统服务器,重视服务的响应速度,希望系统停顿时间最短,给用户较好的体验。
垃圾回收过程

  1. 初始标记:仅标记GC Roots直接关联的对象,速度快,需要停顿
  2. 并发标记:从GC Roots对象进行可达性分析,找到存活对象,耗时最长,不需要停顿
  3. 重新标记:修改并发标记期间因程序继续运作导致标记变动那一部分,需要停顿(STW),这个停顿会比初始标记长一些,但比并发标记时间短
  4. 并发清除:不需要停顿
    JVM垃圾回收算法和垃圾回收器是什么?
    优点:耗时最长的并发标记和并发清除可以与用户线程一起工作。
    缺点
    1,CPU资源敏感:并发暂用CPU资源,CPU不足,效率明显降低。
    2,浮动垃圾:并发清理阶段,由于用户线程继续运行产生的垃圾,CMS无法处理,需等待下一次GC处理,这部分成为“浮动垃圾”
    3,会产生空间碎片:标记-清理算法会产生不连续的空间碎片

    G1垃圾收集器

    -XX:+UseG1GC
    内部布局改变
    G1把堆划分多个大小相等的独立区域(Region),新生代和老年代不再物理隔离。
    算法:标记-整理(humongous)和复制回收算法(survivor)。
    JVM垃圾回收算法和垃圾回收器是什么?
    GC模式
    Young GC(回收Eden、Survivor区):选定所有年轻代的Region,通过控制年轻代个数,来控制young GC 的时间开销(复制回收算法)
    Mixed GC(全部区域回收):不但选定年轻代Region还要选定老年代收益高的若干Region,进行释放。Mixed GC 不是Full GC,如果Mixed GC 跟不上程序分配内存速度,就会使用serial odl GC(Full GC)来收集整个GC heap。4G1不是Full GC。
    全局并发标记
    1, 初始标记:仅仅标记一下GC Roots能直接关联的对象,此阶段需要停顿线程(STW),但耗时很短。
    2, 并发标记:从GC Roots开始对堆进行可达性分析,找到活对象,耗时很长,但与用户程序并行
    3,最终标记:为了修正并发标记阶段因用户程序继续而导致标记产生变动的那一部分标记记录。需要停顿线程(STW),但是可并行执行。
    4,筛选回收:首先对各个Region中的回收价值和成本进行排序,根据用户所期望的GC停顿时间来指定回收计划。此阶段与用户并行一起并行执行,但是因为回收一部分Region,时间是用户可控的,而且停顿用户线程能大幅度提交收集效率。
    JVM垃圾回收算法和垃圾回收器是什么?
    特点
    1, 空间整理:不会产生内存碎片。算法为标记-整理和复制回收算法。
    2, 可预测的停顿:G1,刷选不是经常使用,而是刷选那些回收效率比较高的区域(回收回报比比较高)。总共1000个区域,一个区域10m * 筛选常用的100个区域  急需回收。

Stop The World
GC收集器和GC优化的目标就是尽可能的减少STW的时间和次数。

相关内容

热门资讯

民进党官员称鼠患非认知战,蒋万... 海峡导报综合报道 台北市鼠患引发关注,“青鸟”借机攻击国民党籍台北市长蒋万安,外界质疑沦为政治攻防、...
视频丨五一档票房7.58亿元!... 据国家电影局统计,今年五一档电影票房为7.58亿元,观影人次为2084.19万,放映场次为237.6...
康斯坦茨取得低压智能电容装置专... 国家知识产权局信息显示,康斯坦茨集团有限公司取得一项名为“一种低压智能电容装置”的专利,授权公告号C...
网络适老不应只是放大字体 当前,我国银发网民规模已达1.61亿,老年群体对网络的需求,早已超越“放大字体”的浅层便利,更迫切需...
AMD业绩全面超预期,AI服务... AMD最新财报释放出强烈信号:AI需求仍在扩张,且不再只集中于GPU。公司营收、利润和二季度展望全面...
耳卫士听力上海西嘉杨浦长海店告... 听力受损还能恢复吗? 生活中很多人都会遇到这样的困扰:偶尔耳鸣、听声音模糊、近距离交谈费劲,甚至出现...
安徽省委常委、合肥市委书记费高... 安徽省委常委、合肥市委书记费高云涉嫌严重违纪违法,目前正接受中央纪委国家监委纪律审查和监察调查。
蓝绿对决白热化!民进党负面选战... 离台湾县市长选举还有半年时间,蓝绿之间的博弈日渐白热化。继民进党民代沈伯洋拿“鼠患”文章攻击台北市长...
俄安全局逮捕多名为乌收集情报的... 总台记者当地时间6日获悉,俄罗斯联邦安全局消息称,抓获5名为乌克兰情报机构工作的特工,包括4名俄罗斯...
美以官员:若僵局持续,特朗普本... 美伊目前虽然维持停火局面,但是外交谈判迟迟没有进展。美国和以色列官员说,僵局若持续,美国总统特朗普本...