没有合适的资源?快使用搜索试试~ 我知道了~
G1跟踪每个Region里面垃圾堆积的价值大小(回收所得空间大小与回收所需时间长短的经验值),维护一个优先列表,根据允许的收集时间,优先回收价值大的Region
资源详情
资源评论
资源推荐
JVM 之 CMS 收集器与 G1 收集器
CMS
以获取最短停顿时间为目标,常用在互联网或 B/S 系统服务端等重视响应时间的系统中。
基于“标记-清除”算法。
标记四阶段:初始标记、并发标记、重新标记、并发清除。
其中耗时较长的并发标记、清除两个阶段是与用户线程一起并发执行的。
缺点:
1、 对 CPU 资源敏感。并发操作毕竟要占 CPU 资源,导致程序变慢,吞吐量减少。
2、 无法处理“浮动垃圾”。因为在清除阶段,用户线程还在运行,会有新的垃圾——即“浮动
垃圾”产生。并且这些垃圾是在标记阶段之后产生的,所以无法在本次收集中进行清理。
另外,也因为清理阶段用户线程在运行,所以要额外留出内存空间供其使用。
3、 因为基于“标记-清除”算法,所以会有大量内存碎片产生。
G1
将整个 Java 堆划分成 N 个大小相同的独立区——Region。
保留了新生代、老年代的概念,但二者不再有物理隔离,而都是部分 Region(不需要连续)
的集合。
特点:
1、 并行与并发。原本其他收集器需要停顿用户线程执行 GC,G1 可以通过并发让用户线程
继续执行。
2、 分代收集。
3、 空间整合。基于“标记-整理”算法,避免内存碎片的产生。
4、 可预测的停顿。G1 跟踪每个 Region 里面垃圾堆积的价值大小(回收所得空间大小与回
收所需时间长短的经验值),维护一个优先列表,根据允许的收集时间,优先回收价值
大的 Region,保证在有限的时间内获得尽可能高的收集效率。
除了传统的 Eden、Survivor、Old 区外,还有 Humongous 区。如果一个对象所占空间大于
分区的 50%,就被认为是是巨型对象。一般来说巨型对象会被直接分配到老年代。但是如果
这个巨型对象只是短期存在的话,这么处理就不合适了。Humongous 区就是专门用来存放
巨型对象的。
伯特兰·罗卜
- 粉丝: 21
- 资源: 309
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Flume进阶-自定义拦截器jar包
- Dubins曲线算法讲解和在运动规划中的使用.pdf
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.dta
- 上市公司-股票性质数据-工具变量(民企、国企、央企)2003-2022年.xlsx
- Reeds+Shepp曲线算法讲解和实现.pdf
- 毕业设计基于SpringBoot+MyBatisPlus+MySQL+Vue的外卖配送信息系统源代码+数据库
- 词向量(Word Embeddings)是自然语言处理(NLP)领域的一种重要技术.txt
- Surfer,线性函数
- MyBatis 的动态 SQL 是其核心特性之一.txt
- 时代的sdddsddsddsd
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0