minor GC 流程
时间: 2024-01-07 18:04:29 浏览: 77
JAVA中对GC的理解
Minor GC 是垃圾回收(Garbage Collection)的一种方式,用于回收年轻代(Young Generation)中的垃圾对象。下面是 Minor GC 的大致流程:
1. 标记阶段(Marking Phase):从根对象(如栈、静态变量等)出发,标记所有可以被访问到的对象,并将其标记为活跃对象。
2. 复制阶段(Copying Phase):将所有活跃对象从 Eden 区域(年轻代中的一部分)复制到一个空闲的 Survivor 区域(通常为 From 区域),同时进行对象年龄的计数。
3. 清除阶段(Clearing Phase):清除非活跃对象,并将 Eden 区域和上一次复制过的 Survivor 区域进行清空。
4. 重置阶段(Resetting Phase):将 From 区域和 To 区域进行交换,以便下一次 Minor GC 的执行。
需要注意的是,Minor GC 是在年轻代中执行的,通常会伴随着一些暂停时间。其目的是尽可能快速地回收那些短命对象,以减少全局垃圾回收的频率和开销。同时,通过复制算法,也可以避免了内存碎片的问题。
这只是 Minor GC 的一种实现方式,具体的实现可能会因不同的垃圾收集器而有所不同。
阅读全文