首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
GC收集器
时间:
2019-11-21 17:13:20
阅读:
64
评论:
0
收藏:
0
[点我收藏+]
标签:
member
root
记录
清除
过程
简单
多线程
线程
独立
新生代收集器
Serial New
单线程收集器,工作时必须暂停其他线程;
简单高效,没有线程交互开销;
基于复制算法;
Parallel New
对Serial的改进,多线程;
CPU数量<4时,性能并不比Serial好;
CMS新生代的默认收集器;
基于复制算法;
Parallel Scavenge
复制算法;
更关注吞吐量,吞吐量 = 运行用户代码时间 / (运行用户代码时间 + 垃圾收集时间);
不能和CMS配合工作
老年代收集器
Serial Old
标记-整理算法
单线程,性能不行;
Parallel Old
Serial Old的多线程版本;
标记-整理算法;
CMS Concurrent Mark Sweep
标记-清除算法;
并发收集器;
缺点
产生内存碎片较多;
产生浮动垃圾;
并发执行,占用CPU;
CMS收集过程
初始标记:stop the world,只是做GC Root可达性的初始标记
并发标记:耗时较长,但可以与用户线程并发执行;
重新标记:stop the world,标记2中变动的对象;
并发清除:耗时较长,但可以与用户线程并发执行;
非分代收集器
G1 Garbage First
新生代和老年代由一个个region区组成;
可以独立完成所有区域的内存回收;
标记-整理算法;
G1的工作过程:
初始标记:同CMS;
并发标记:耗时较长,分析GC Root到所有对象的可达性。JVM是使用Remembered Set保存了对象引用的调用信息,在可达性分析的时候只需要同时遍历remembered set;
最终标记:通过Remembered Set日志来记录并发标记时没有记录到的用户线程,在这个阶段将改变合并到Remembered Set中,完成最终标记。
筛选清除:通过标记整理的算法,根据用户配置的回收时间,和维护的优先级列表,优先收集价值最大的region。收集阶段是基于标记-整理和复制算法;
ZGC
JDK11中发布的最新垃圾收集器;
没有分代概念、时间可控,超大堆;
几乎所有阶段都是并发执行;
动态的创建销毁Region
回收过程
初始停顿标记:停顿JVM,标记存活对象;
并发标记:并发递归标记其他对象;
移动对象:找到过期对象,移动到新的Region,然后压缩老的Region;
修正指针:将指针指向新的地址;
GC收集器
标签:
member
root
记录
清除
过程
简单
多线程
线程
独立
原文地址:https://www.cnblogs.com/ngrzr/p/11906540.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!