详细解决方案
JVM基础 -> GC分代: MinorGC MajorGC FullGC Mixed GC
热度:55 发布时间:2023-12-16 09:17:55.0
GC分代: MinorGC MajorGC FullGC Mixed GC
-
MinorGC 也叫新生代GC
:发生在新生代的垃圾回收,因为新生代的特点,MinorGC非常频繁,且回收速度比较快,每次回收的量也很大。
- 注意: 新生代GC是一个形容词
- 例如,你要打扫一下卧室垃圾,卧室GC是一个形容词,利用什么打扫,用什么方式是另一个问题
- 新生代GC完成GC,用指定好的垃圾回收器,垃圾回收器会有自己的回收算法
- 当然,MinorGC的垃圾回收器一定是用
复制算法
,他没有别的算法的选择
-
MajorGC 也叫老年代GC
: 发生在老年代的垃圾回收,也称MajorGC,速度比较慢,相对于MinorGC慢10倍左右。
- 注意: 老年代GC是一个形容词
- 例如,你要打扫一下客厅垃圾,客厅GC是一个形容词,利用什么打扫,用什么方式是另一个问题
- 老年代GC完成GC,用指定好的垃圾回收器,垃圾回收器会有自己的回收算法
- CMS垃圾回收器主要用
标记清除算法
,其余的垃圾回收器都是用标记整理算法
- CMS主要用
标记清除算法
,因为如果触发FullGC的条件,老年代不会再使用CMS
- 而是使用单线程的serial old垃圾回收器,使用
标记整理算法
-
FullGC (Full:完整)
:清理整个堆的GC事件,包括新生代、老年代、元空间等,他是GC的后备机制,也是垃圾回收的最后尊严,成败在此一举
- 注意: FullGC是一个形容词
- 例如,你要打扫一下整个家,整个家GC是一个形容词,利用什么打扫,用什么方式是另一个问题
- FullGC完成GC,用指定好的垃圾回收器,会有自己的回收算法
- 那FullGC用的什么垃圾回收器和算法呢?
- FullGC都是
单线程的serial 垃圾回收器
-> 标记-复制算法
+ 标记-整理算法
-
Mixed GC
: 清理整个新生代以及部分老年代的GC,只有G1有这个模式
点赞,靓仔