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]
相关文章推荐
- Python之从零开始:本博规划
- 用 OC 写两个线程,对同一个变量 分别进行+/-操作
- oracle索引的理解
- 如何 使用eclipse 建立maven3 项目 (入门级)
- 改变Linux Shell中的字体和背景颜色
- android px、dp(dip)、dpi基本概念及之间的关系
- C# 操作word总结(一)——建立文档和添加页眉页脚
- Maven的发布plugin配置
- 常用嵌入式文件系统
- [LeetCode] Find the Duplicate Number 寻找重复数
- 简述tcp协议对http性能的影响及优化
- 自定义NSOperation
- Kvc简单介绍
- android 更改USB显示名称
- Study schedule for new work.
- centos 定时任务Crontab 使用实例
- HIVE Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal,
- sed在shell中的简单应用
- Linux查看命令终止进程
- python--sorted函数