本文主要是介绍JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
GC分代: MinorGC MajorGC FullGC Mixed GC
-
MinorGC 也叫新生代GC
:发生在新生代的垃圾回收,因为新生代的特点,MinorGC非常频繁,且回收速度比较快,每次回收的量也很大。- 注意: 新生代GC是一个形容词
- 例如,你要打扫一下卧室垃圾,卧室GC是一个形容词,利用什么打扫,用什么方式是另一个问题
- 新生代GC完成GC,用指定好的垃圾回收器,垃圾回收器会有自己的回收算法
- 当然,MinorGC的垃圾回收器一定是用
复制算法
,他没有别的算法的选择
- 注意: 新生代GC是一个形容词
-
MajorGC 也叫老年代GC
: 发生在老年代的垃圾回收,也称MajorGC,速度比较慢,相对于MinorGC慢10倍左右。- 注意: 老年代GC是一个形容词
- 例如,你要打扫一下客厅垃圾,客厅GC是一个形容词,利用什么打扫,用什么方式是另一个问题
- 老年代GC完成GC,用指定好的垃圾回收器,垃圾回收器会有自己的回收算法
- CMS垃圾回收器主要用
标记清除算法
,其余的垃圾回收器都是用标记整理算法
- CMS主要用
标记清除算法
,因为如果触发FullGC的条件,老年代不会再使用CMS - 而是使用单线程的serial old垃圾回收器,使用
标记整理算法
- CMS主要用
- 注意: 老年代GC是一个形容词
-
FullGC (Full:完整)
:清理整个堆的GC事件,包括新生代、老年代、元空间等,他是GC的后备机制,也是垃圾回收的最后尊严,成败在此一举- 注意: FullGC是一个形容词
- 例如,你要打扫一下整个家,整个家GC是一个形容词,利用什么打扫,用什么方式是另一个问题
- FullGC完成GC,用指定好的垃圾回收器,会有自己的回收算法
- 那FullGC用的什么垃圾回收器和算法呢?
- FullGC都是
单线程的serial 垃圾回收器
->标记-复制算法
+标记-整理算法
- 注意: FullGC是一个形容词
-
Mixed GC
: 清理整个新生代以及部分老年代的GC,只有G1有这个模式
点赞,靓仔
这篇关于JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!