除了full gc 还有什么?
时间: 2024-05-28 17:13:14 浏览: 109
一次诡异的full gc查找问题全过程
除了 Full GC 还有以下几种垃圾收集方式:
1. Young GC:针对年轻代进行的垃圾收集。一般会采用复制算法,将年轻代分为 Eden 区和两个 Survivor 区,当 Eden 区存满时,会进行一次 Young GC,将存活的对象复制到 Survivor 区中,同时清空 Eden 区。Survivor 区也会随着时间不断进行复制和清空,直到达到一定阈值后,会将对象晋升到老年代中。
2. CMS GC:针对老年代进行的垃圾收集。一般采用标记-清除算法,分为初始标记、并发标记、重新标记和清除四个阶段。在初始标记和重新标记阶段,需要停顿整个应用程序。在并发标记阶段,GC 线程会与应用程序线程并发执行,不会停顿整个应用程序。
3. G1 GC:是一种基于 Region 的垃圾收集器,将内存分成多个大小相等的 Region。每次执行 GC 时,会优先选择垃圾最多的 Region 进行回收,称为 GC Roots。G1 GC 可以同时针对年轻代和老年代进行垃圾收集,可以避免 Full GC 带来的长时间停顿问题,适用于大内存应用程序。
需要根据具体场景和应用程序的特点来选择合适的垃圾收集器。
阅读全文