JVM GC

作者: dexteryu | 来源:发表于2017-07-04 11:33 被阅读0次
Java 运行时数据区
JVM垃圾收集器算法
  • 标记– 清除算法(Mark-Sweep)

从”GC Roots”集合开始,将内存整个遍历一次,保留所有可以被GC Roots直接或间接引用到的对象,而剩下的对象都当作垃圾对待并回收,这个算法需要中断进程内其它组件的执行并且可能产生内存碎片


  • 复制算法(Copying)

将现有的内存空间分为两快,每次只使用其中一块,在垃圾回收时将正在使用的内存中的存活对象复制到未被使用的内存块中,之后,清除正在使用的内存块中的所有对象,交换两个内存的角色,完成垃圾回收。


  • 标记– 整理算法(Mark-Compact)

先需要从根节点开始对所有可达对象做一次标记,但之后,它并不简单地清理未标记的对象,而是将所有的存活对象压缩到内存的一端。之后,清理边界外所有的空间。这种方法既避免了碎片的产生,又不需要两块相同的内存空间,因此,其性价比比较高。


  • 分代收集算法(GenerationalCollection)

将所有的新建对象都放入称为年轻代的内存区域,年轻代的特点是对象会很快回收,因此,在年轻代就选择效率较高的复制算法。当一个对象经过几次回收后依然存活,对象就会被放入称为老生代的内存空间。对于新生代适用于复制算法,而对于老年代则采取标记-压缩算法。


内存分配策略
  • 对象优先在新生代分配
  • 对象直接进入老年代
  • 长期存活的对象将进入老年代
JVM垃圾收集器
  • CMS收集器


  • G1收集器


相关资料

相关文章

  • jvm垃圾清理机制

    更多参考GC及JVM参数浅析JAVA的垃圾回收机制(GC)JVM系列三:JVM参数设置、分析jvm系列 (二) -...

  • JVM系列(五):Java GC 分析

    Java GC就是JVM记录仪,书画了JVM各个分区的表演。 什么是 Java GC Java GC(Garbag...

  • jvm系列:Java GC 分析

    Java GC就是JVM记录仪,书画了JVM各个分区的表演。 什么是 Java GC Java GC(Garbag...

  • jvm系列(五):Java GC 分析

    ​Java GC就是JVM记录仪,书画了JVM各个分区的表演。 什么是 Java GC Java GC(Garba...

  • java(内存和gc)

    JVM内存和gc机制JVM内存 Java垃圾回收概况 Java GC(Garbage Collection,垃圾收...

  • [JVM系列]JVM GC详解

    JVM GC详解

  • JVM系列之GC

    JVM系列之GC 谈到JVM,大家都知道GC(Garbage Collection),GC这个话题说浅了就一句话-...

  • JVM - GC日志

    JVM - GC日志 -XX:+PrintGC 输出GC日志 -XX:+PrintGCDetails 输出GC的详...

  • 4

    1. Jvm中的Full GC是什么?Full GC发生的场景?如何应对? Full GC讲解之前,先看一张JVM...

  • [JVM系列]JVM的GC机制

    JVM的GC机制

网友评论

      本文标题:JVM GC

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