GC算法标记-清除复制标记 整理分代收集一些收集器

发布时间:   来源:CSDN  

GC算法

标记-清除复制标记-整理分代收集


(资料图片)

一些收集器

1. Serial

* 单线程收集器

2. ParNew

Serial的多线程版

3. Parallel Scavenge

* 关注吞吐率

4. CMS收集器

* stop the world 时间最短

5. G1收集器

使用G1: -XX:+UseG1GC -Xmx32g -XX:MaxGCPauseMillis=200, 设置最大间隔时间G1将新生代、老年代的物理空间划分取消了将堆划分为若干区,某个区可能是Eden,可能是Survivor,也可能是Old增加了一个类型:Humongous,保存巨型对象永久代改为元空间(metaSpace)两种GC模式:Young GC和Mixed GC Young GC:对Eden区进行GC,部分数据直接晋升到Old区,部分移到Survivor区。 RSet概念(没看懂),大体是一个指针,标记哪些被引用Card Table(没看懂),大体是减少赋值器的扫描处理开销。1.根扫描 2. 更新RS 3. 处理RS 4. 对象拷贝 5. 处理引用队列MixedGC 正常的YoungGC + 回收部分老年代分区步骤:1. 全局并发标记 2. 拷贝存活对象全局并发标记:1. 初始标记 2. 跟区域扫描 3. 并发标记 4. 最终标记 5. 清除垃圾调优 XX:MaxGCPauseMillisXX:G1HeapRegionSizeXX:ParallelGCThreadsXX:ConcGCThreadsXX:InitiatingHeapOccupancyPercent 退化为Full GC 并发模式失败晋升失败或者疏散失败巨型对象分配失败使用Serial模式,进行Full GC

参考链接

Java GC讲解 深入理解 Java G1 垃圾收集器

相关文章Related

返回栏目>>