2024-10-26  阅读(19)
版权声明:本文为博主付费文章,严禁任何形式的转载和摘抄,维权必究。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1692235161

回答

通常 Full GC 是 JVM 为了回收整个堆内存而进行的一次全局性的垃圾回收操作,它会暂停所有的应用线程(STW),所以对应用程序的性能会有比较大的影响。

以下是几个能够触发 Full GC 的常见场景。

一、老年代不足

这是最直观的表现了。当堆内存中的老年代被占满时,JVM 会触发 Full GC 来尝试回收老年代的对象。

二、元空间不足

如果元空间不足,也会触发 Full GC。导致元空间不足的原因主要有:

  1. 加载了大量的类,导致元空间不足
  2. 大量的动态代理类或反射生成的类没有及时卸载

详细情况参考:遇到过元空间溢出吗?什么情况会造成元空间溢出?