Minor GC和Full GC有什么区别?

写在前面

本文隶属于专栏《100个问题搞定Java虚拟机》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和文献引用请见100个问题搞定Java虚拟机

解答

Minor GC/Young GC

指发生在新生代的垃圾收集动作,因为Java对象大多都具备朝生暮死的特性,所以 Minor GC非常频繁,一般回收速度也比較快。
新生代非常适合复制算法,新建 Java 对象优先放到 Eden 区,当 Eden 区的空间耗尽时, Java 虚拟机便会触发一次 Minor GC,来收集新生代的垃圾。
Eden 区和 from 指向的 Survivor 区中的存活对象会被复制到 to 指向的 Survivor 区中,然后交换 from 和 to 指针,以保证下一次 Minor GC 时,to 指向的 Survivor 区还是空的。

Major GC/Old GC

指目标只是老年代的垃圾收集。目前只有 CMS 垃圾收集器会有单独的收集老年代的行为。

在不同的资料上,Major GC和 Full GC存在混淆情况,本文采取《深入理解Java虚拟机:JVM高级特性与最佳实践第3版》的说法。

Full GC

一般指整个 Java 堆和方法区的垃圾回收。
出现了 Full GC,一般会伴随至少ー次的Minor GC。 Full GC 的速度一般会比 Minor GC 慢10倍以上。

同时最糟糕的是 Full GC 为了枚举 GC Roots 不得不 stop the world(STW)。
JVM 目前来说最大的缺点一方面是占用内存较多,另一方面就是这个 STW 了。
目前越来越多的大数据框架比如 Spark,Flink 等都是使用直接内存避免用 JVM 管理内存。

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 22
    评论
### 回答1: minor gc 和 full gc 是 Java 虚拟机中的两种垃圾回收方式。 minor gc 是指对年轻代进行垃圾回收,年轻代中的对象一般存活时间较短,因此垃圾回收频率较高。minor gc 通常会暂停应用程序的执行,直到垃圾回收完成。 full gc 是指对整个堆进行垃圾回收,包括年轻代和老年代。老年代中的对象一般存活时间较长,因此垃圾回收频率较低。full gc 会暂停应用程序的执行,直到垃圾回收完成,因此会对应用程序的性能产生较大影响。 因此,minor gc 和 full gc区别在于垃圾回收的范围和频率,以及对应用程序性能的影响程度。 ### 回答2: Minor GC(Young GC)和Full GC(Major GC)是Java虚拟机(JVM)中垃圾收集的两个重要阶段。 Minor GC主要负责清理年轻代(Young Generation)的垃圾对象,年轻代又分为Eden区、Survivor 0区和Survivor 1区。当Eden区满时,触发Minor GC。在这个过程中,存活的对象会被复制到Survivor区,然后进行垃圾回收。Minor GC是一个短暂的过程,通常不会引起长时间的应用暂停。因为大部分对象在年轻代很快就被回收,所以Minor GC的频率比较高。 Full GC则是对整个堆内存进行垃圾回收。它主要清理老年代(Old Generation)和永久代(Perm Generation)中的垃圾对象。Old Generation存放生命周期较长的对象,而Perm Generation存放类信息、常量等。Full GC的频率较低,一般在触发条件满足时才会发生。Full GC执行时间较长,会导致应用的停顿,并且会造成较大开销。 总结而言,Minor GC主要针对年轻代的回收,频率较高但耗时较短,而Full GC则是对整个堆内存进行垃圾回收,频率较低但耗时较长。Minor GC的目标是快速地回收生命周期短的对象,而Full GC则是为了清理老年代和永久代中的垃圾对象以防止内存不足。了解Minor GC和Full GC区别有助于我们优化JVM的垃圾回收策略,提高应用的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值