美文网首页
七、JVM系列(垃圾回收的几种类型)

七、JVM系列(垃圾回收的几种类型)

作者: 大虾啊啊啊 | 来源:发表于2021-05-10 09:20 被阅读0次

    Minor GC

    从年轻代回收内存被称为Minor GC。

    • 当JVM无法为一个新的对象分配内存空间时,就会触发Minor GC,比如当Eden区满了,所以Eden区越小,越频繁触发Minor GC
    • 当年轻代中的Eden区分配满的时候,年轻代中的部分对象会晋升到老年代,所以Minor GC后老年代的咱用量会变高。
    • 如果Eden区中的大部分对象都不能被认定为垃圾,那么Minor GC时执行暂停的时间就会越多,因为他们要将他们复制到Surivor区或者老年代区。

    Major GC

    从老年代回收内存,被称为 Major GC
    Major GC是由Maior GC触发的,Marjor GC作用于老年代,当分配对象时候发现内存不够的时候,会触发Minor GC,将新生代的对象移动到老年代,当老年代的内存不够的时候,就会触发 Marjor GC。

    Full GC

    清理整个堆空间,包括年轻代,老年代,永久代,
    当准备要触发Minor GC的时候,发现年轻代剩余的空间比以往晋升的还要小,则不会触发Minor GC,直接触发 Full GC。(也就JVM认为,在原来那么大的内存空间的时候,已经发生了对象晋升成老年代,说明这次更小的空间,更加会晋升,因此直接触发Full GC,整理一下老年代和年轻代的空间)
    另外在永久代分配空间,发现内存不足的时候,也会触发Full GC。

    Stop-The-World

    意思就是整个世界停止,指的是在进行垃圾回收时因为标记和清理的需要,必须让所有非回收垃圾的线程停止工作,从而让回收垃圾的线程回收垃圾产生的时间间隔。
    在Stop-The-World这段期间,非垃圾回收线程都要暂停工作。只有等到回收完毕,才能继续工作。因此可以知道频繁的垃圾回收,以及Stop-The-World的时间直接会影响到了程序的响应时间。

    相关文章

      网友评论

          本文标题:七、JVM系列(垃圾回收的几种类型)

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