原文网址:JVM垃圾回收--垃圾回收器--CMS和G1的区别和执行流程_IT利刃出鞘的博客-****博客
简介
本文介绍CMS和G1的垃圾回收流程以及他们的区别。
CMS与G1的区别
项 |
CMS(Concurrent Mark Sweep) |
G1(Garbage-First) |
目的 |
减少回收停顿时间(牺牲吞吐量)。 |
减少长停顿的次数、增加吞吐量。 为了替代CMS(JDK11默认使用G1)。 |
回收的代 |
回收老年代 |
回收新生代和老年代 |
算法 |
标记-清除 |
从整体来看是“标记-整理”算法; 从局部上来看“复制”算法 |
内存碎片 |
会产生内存碎片 |
不会产生内存碎片 |
过程 |
初始标记=> 并发标记=> 重新标记=> 并发清理 |
初始标记=> 并发标记=> 重新标记=> 并行清理 |
使用场景 |
服务器资源较少(处理器少、内存小)。 |
服务器资源较多(多核处理器、大内存。) |
CMS 在小内存应用上的表现要优于 G1,而大内存应用上 G1 更有优势,大小内存的界限是6GB到8GB。
CMS垃圾回收器
流程
说明
CMS是老年代并发GC算法:(ConcurrentMark-SweepGC、CMS GC)。
算法总体逻辑:标记-清除(Mark-Sweep)
上边是文章的部分内容,为便于维护,全文已迁移到此网址:JVM—CMS和G1垃圾回收器的区别和执行流程 - 自学精灵