Sun java GC 执行策略 年轻代、老年代、持久代 年轻代 生命周期很短的对象,归为年轻代。由于生命周期很短,这部分对象在 gc 的时候,很大部分的对象已经成为非活动对象。因此针对年轻代的对象,采用复制算法,只需要将少量的存活下来的对象 copy 到 to space 。存活的对象数量越少,那么复制算法的效率越高。 年轻代的 gc 称为 minor gc 经过数次复制,依旧存活的对象,将被移出年轻代,移到老年代。
24.
Sun java GC 执行策略 年轻代、老年代、持久代 年轻代分为: eden :每当对象创建的时候,总是被分配在这个区域 survivor1 : copy 算法中的 from space survivor2 : copy 算法中的 to sapce
Sun java GC 执行策略 年轻代、老年代、持久代 老年代: 生命周期较常的对象,归入到老年代。一般是经过多次 minor gc ,还依旧存活的对象,将移入到老年代。 老年代的 gc 称为 major gc ,就是通常说的 full gc 。 采用标记 - 整理算法。由于老年区域比较大,而且通常对象生命周期都比较长,标记 - 整理需要一定时间。所以这部分的 gc 时间比较长。 minor gc 可能引发 full gc 。当 eden + from space 的空间大于老年代的剩余空间时,会引发 full gc 。这是悲观算法,要确保 eden + from space 的对象如果都存活,必须有足够的老年代空间存放这些对象。