Serial,Parallel,CMS,G1四大GC收集器特点小结
2019独角兽企业重金招聘Python工程师标准>>>
1.Serial收集器
一个单线程的收集器,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。
特点:CPU利用率最高,停顿时间即用户等待时间比较长。
适用场景:小型应用
通过JVM参数-XX:+UseSerialGC可以使用串行垃圾回收器。
2.Parallel收集器
采用多线程来通过扫描并压缩堆
特点:停顿时间短,回收效率高,对吞吐量要求高。
适用场景:大型应用,科学计算,大规模数据采集等。
通过JVM参数 XX:+USeParNewGC 打开并发标记扫描垃圾回收器。
3.CMS收集器
采用“标记-清除”算法实现,使用多线程的算法去扫描堆,对发现未使用的对象进行回收。
- (1)初始标记
- (2)并发标记
- (3)并发预处理
- (4)重新标记
- (5)并发清除
- (6)并发重置
特点:响应时间优先,减少垃圾收集停顿时间
适应场景:服务器、电信领域等。
通过JVM参数 -XX:+UseConcMarkSweepGC设置
4.G1收集器 在G1中,堆被划分成 许多个连续的区域(region)。采用G1算法进行回收,吸收了CMS收集器特点。
特点:
- 支持很大的堆,高吞吐量
- 支持多CPU和垃圾回收线程
- 在主线程暂停的情况下,使用并行收集
- 在主线程运行的情况下,使用并发收集
实时目标:可配置在N毫秒内最多只占用M毫秒的时间进行垃圾回收
通过JVM参数 –XX:+UseG1GC 使用G1垃圾回收器
转载于:https://my.oschina.net/u/3421984/blog/1609865
Serial,Parallel,CMS,G1四大GC收集器特点小结相关推荐
- HotSpot VM垃圾收集器——Serial Parallel CMS G1垃圾收集器的JVM参数、使用说明、GC分析
目录 HotspotVM的垃圾收集器简介 1. Serial Collector 2. Parallel Collector(throughput collector) 3. Concurrent M ...
- 深入JVM虚拟机(四) Java GC收集器
转载自 深入JVM虚拟机(四) Java GC收集器 1 GC收集器 1.1 Serial串行收集器 串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收:第二,它独占式的垃圾回收. 在串行 ...
- jvm系列二之GC收集器
目录 参考 概念理解 并发和并行 吞吐量 GC垃圾收集器 Serial New收集器 Parallel New(并行)收集器 Parallel Scavenge(并行)收集器 Serial Old(串 ...
- JVM总结(四)GC收集器以及JDK7,JDK8中JVM内存变化
Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的"高墙",墙外面的人想进去,墙里面的人却想出来. GC收集器 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存 ...
- JVM的GC回收算法、GC收集器以及内存分配策略
目录 •写在前面 •标记-清除算法 •复制算法 •标记-整理算法 •HotSpot上的算法实现保障 •GC收集器 •内存分配策略 •写在前面 JVM的垃圾回收算法.收集器以及内存分配策略放在一起了解和 ...
- 深入理解java虚拟机gc_jvm GC收集器与内存分配(深入理解java虚拟机第三章)
jvm GC收集器与内存分配(深入理解java虚拟机第三章) 本篇是<深入理解java虚拟机第三章>的笔记记录. 一 为什么要关注GC和内存分配? 需要排查各种内存溢出.内存泄漏问题时,或 ...
- HotSpot VM GC收集器的易混淆的名称问题
最近分析HotSpot VM GC日志,就各种收集器的名称搞晕掉了,幸好参考R大(RednaxelaFX )一些回复和文章.整理在此文,以方便自已日后查阅,也可让有需要的同学少走弯路,追本溯源,一切从 ...
- 研究了 2 天,终于知道 JDK 8 默认 GC 收集器了!
JDK 8 到底默认用的是哪款 GC 收集器? 为啥是 JDK8?不是 9 也不是 10?因为 JDK8 还是市场占有率最高的,所以针对这个版本我做了深入的探索. <深入理解 Java 虚拟机& ...
- 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS 并发标记清除收集器 )
文章目录 一. 分代收集算法 二. 垃圾回收器 / 收集器 ( GC ) 三. 串行收集器 ( Serial ) 四. ParNew 收集器 五. Parallel Scavenge 收集器 六. C ...
最新文章
- 解读main()方法中的String[] args
- Python基础数据类型之字符串(一)
- DNS原理及简单配置
- .Net Core实现的文档数据库RavenDb
- This document is opened by another project error message
- 【转】4.2SharePoint服务器端对象模型 之 使用CAML进行数据查询(Part 2)
- Galaxy Note 20新爆料:至少有两款机型,处理器高低配
- 本地Git仓库关联Github项目
- 蓝桥杯led流水灯实现(38译码器和锁存器的使用)
- 一个漂亮的电子数字字体分享electronicFont
- 电脑未安装任何音频设备解决办法
- Android OTA 差分包制作
- 计算机远程怎么设置路由器,路由器远程登录设置方法
- 科学院计算机研究所谢教授,谢维波
- JavaScript图标移动小案例
- 网络广告中各种广告形式
- 5x2cv配对t检验(5x2cv paired t test)
- Flutter 使用 ESC/POS蓝牙或以太网库控制热敏打印机
- HECTF 部分wp
- 无线射频专题《射频基础,射频特征,波长,频率,振幅,相位》