浅谈 G1 垃圾收集器
为解决 CMS 算法产生空间碎片和其它一系列的问题缺陷,HotSpot 提供了另外一种垃圾回收策略,G1(Garbage First)算法,通过参数 -XX:+UseG1GC 来启用,该算法在 JDK 7u4 版本被正式推出。
G1 垃圾收集算法主要应用在多 CPU 大内存的服务中,在满足高吞吐量的同时,竟可能的满足垃圾回收时的暂停时间,该设计主要针对如下应用场景:
- 垃圾收集线程和应用线程并发执行,和 CMS 一样
- 空闲内存压缩时避免冗长的暂停时间
- 应用需要更多可预测的 GC 暂停时间
- 不希望牺牲太多的吞吐性能
- 不需要很大的 Java 堆
堆内存结构
1、以往的垃圾回收算法,如 CMS,使用的堆内存结构如下:

- 新生代:eden space + 2个 survivor
- 老年代:old space
This chapter requires login to view full content. You are viewing a preview.
Login to View Full Content