java CMS GC

  |   0 评论   |   0 浏览

Young GC

Young GC (Minor GC):
垃圾回收算法:Copying

1.一个新创建的对象,首先会被存储在新生代的Eden 中,Eden空间不足时,GC,将存活的对象(仍然被引用的)从 Eden 移动到 Survivor1;

2.Survivor1空间不足时,GC,将Eden和Survivor1中存活的对象,移动到Survivor2,如果Survivor2空间不足,则全部移动到老年代;

3.Survivor2空间不足时,GC,将Eden和Survivor1中存活的对象,移动到Survivor1,如果Survivor1空间不足,则全部移动到老年代;

Full GC

老年代GC(Major GC / Full GC):

垃圾回收算法:Mark-Compact

相对于 Java 垃圾回收过程,老年代是对象生命周期的最后阶段。Major GC 扫描老年代的垃圾回收过程。如果实例不再被引用,那么它们会被标记为回收,否则它们会继续留在老年代中。

垃圾回收算法

Mark-Sweep(标记-清除)算法

缺点:内存碎片

Copying(复制)算法

缺点:能够使用的内存缩减到原来的一半。

Mark-Compact(标记-整理)算法

一般厂商JVM中老年代GC就是使用的这种算法,由于老年代的特点是每次回收都只回收少量对象。