频繁gc是什么意思_什么情况下会发生full Gc?如何排查频繁发生full Gc的原因?...

GC就是Java的垃圾回收机制,要了解什么情况下会发生GC(即GC得触发条件),我们需要先了解JVM的内存模型结构,之前一篇文章已经详细讲解了Jvm的内存模型结构,而通常来说,GC主要针对的是堆(java heap)区。

而java heap是分代的(年轻代和老年代),为什么要分代?其实也不难理解,分代就是为了优化性能,如果不分代,那就会导致所有对象揉在一块,那样GC就会对堆区域进行全扫描。所以,分代可以大大提升GC性能,那么,分代的原理是什么?

JVM对于堆的垃圾回收,采用分代收集的策略,所以分代的原理就是根据堆中对象的存活周期进行分代,年轻代中,每次垃圾回收都有大批对象死去,只有少量存活,而老年代中存放的对象存活率高。

>>>>>必须知道的知识点<<<<<

Young space:年轻代(新生代),保存生命周期较短的对象

Tenured space:老年代(年老代),保存生命周期较长的对象

Minor GC:发生在Young space中的gc

Major GC:发生在老年代Tenured space中的gc

STW(stop the world):指的是用户线程在运行至安全点(safe point)或安全区域(safe region)之后,就自行挂起,进入暂停状态,对外的表现就是卡顿,而不论何种gc算法,不论是minor gc还是major gc都会STW,区别只在于STW的时间长短。

Full GC&#x

你可能感兴趣的:(频繁gc是什么意思)