美文网首页
JVM垃圾回收机制

JVM垃圾回收机制

作者: 笨比乔治 | 来源:发表于2020-10-20 14:43 被阅读0次

    JVM垃圾回收机制 - GC发生在JVM哪部分,有几种GC,它们的算法是什么?
    GC发生在heap堆中。

    1.1 Minor GC

    从年轻代空间(包括Eden和Survivor区域)回收内存被称为Minor GC :

    1. 当Eden区域满了,jvm无法为新对象分配内存,会触发Minor GC;
    2. 新生代好进行标记和复制操作,就不会存在内存碎片。
    3. 年轻代中指向永久代中的引用,在标记阶段就会忽略。
    4. stop-the-world。原因是Eden区中对象认为是垃圾,不会复制到Survivor区或者老年代。如果相反,Eden区
      大部分对象不符合GC 条件,那么 Minor GC指定的时间就比较长。每次Minor GC会清理年轻代的内存。

    1.2 Major GC 和Full GC

    1. Major GC: 清理老年代
    2. Full GC: 清理整个堆内存,包括年轻代和老年代

    但是更多情况下,许多Minor GC 会 触发Major GC ,所以实际情况两者分离是不可能的。这就使得我们关注重点变成,GC是否能并发处理这些GC.

    GC的四大算法:

    1.引用回收算法(对象有引用,就不回收,已淘汰,无法处理循环引用)
    2.复制算法(发生在YG、效率高,无碎片,占空间)
    3.标记清除(发生在OG、省空间,产生碎片)
    4.标记压缩(OG、成本高)
    5.标记清除压缩(OG、③④混合)


    7FBC5EDCA8C08E752CDCD50D95BD85BF.png

    相关文章

      网友评论

          本文标题:JVM垃圾回收机制

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