您的位置:首页 > 其它

Serial,Parallel,CMS,G1四大GC收集器特点小结

2015-09-28 11:39 211 查看




1.Serial收集器

[title3]一个单线程的收集器,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。

特点:CPU利用率最高,停顿时间即用户等待时间比较长。

适用场景:小型应用

通过JVM参数-XX:+UseSerialGC可以使用串行垃圾回收器。[/title3]



2.Parallel收集器

[title3]采用多线程来通过扫描并压缩堆

特点:停顿时间短,回收效率高,对吞吐量要求高。

适用场景:大型应用,科学计算,大规模数据采集等。

通过JVM参数 XX:+USeParNewGC 打开并发标记扫描垃圾回收器。[/title3]



3.CMS收集器

[title3]采用“标记-清除”算法实现,使用多线程的算法去扫描堆,对发现未使用的对象进行回收。

(1)初始标记

(2)并发标记

(3)并发预处理

(4)重新标记

(5)并发清除

(6)并发重置

特点:响应时间优先,减少垃圾收集停顿时间

适应场景:服务器、电信领域等。

通过JVM参数 -XX:+UseConcMarkSweepGC设置[/title3]



4.G1收集器

[title3]在G1中,堆被划分成 许多个连续的区域(region)。采用G1算法进行回收,吸收了CMS收集器特点。

特点:支持很大的堆,高吞吐量

--支持多CPU和垃圾回收线程

--在主线程暂停的情况下,使用并行收集

--在主线程运行的情况下,使用并发收集

实时目标:可配置在N毫秒内最多只占用M毫秒的时间进行垃圾回收

通过JVM参数 –XX:+UseG1GC 使用G1垃圾回收器[/title3]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: