您的位置:首页 > 财经 > 产业 > 无锡黄页网_怎么免费建立个人网站_重庆疫情最新消息_北京seo推广优化

无锡黄页网_怎么免费建立个人网站_重庆疫情最新消息_北京seo推广优化

2024/11/16 11:17:21 来源:https://blog.csdn.net/u011069294/article/details/143648302  浏览:    关键词:无锡黄页网_怎么免费建立个人网站_重庆疫情最新消息_北京seo推广优化
无锡黄页网_怎么免费建立个人网站_重庆疫情最新消息_北京seo推广优化

stw:垃圾回收的时候,工作线程全部停止

新生代三款:
serial: 单线程。stw。复制算法。新生代。
适合单线程应用和客户端模式。

ParNew:多线程(垃圾回收的时候使用多线程)。stw。新生代。
适合多处理器环境。

Parallel Scavenge:吞吐量优先(保证用户线程能够占用更多的运行时间),有参数可以控制最大gc时间以及gc占用的时间比例。
多线程(垃圾回收的时候使用多线程)。stw。复制算法。新生代。
适合大规模后台任务,注重吞吐量而非延迟。

老年代三款:
CMS:垃圾回收线程和用户线程同时运行。标记-清除算法。老年代。
缺点:内存碎片 + 浮动垃圾
追求低延迟。适合对响应时间要求较高的应用。

Serial Old:单线程,stw,标记-整理算法,老年代。
适合单线程应用以及低内存场景。

Parallel old:多线程。stw。标记-整理算法,老年代。
适合大规模后台任务,注重吞吐量而非延迟。

G1:追求低延迟,可预测的停顿时间,用于取代cms。
分区来管理内存,垃圾回收时优先收集最有价值的区域。
整体来看,采用的是标记-整理算法,两个region之间采用的是复制算法。没有内存碎片。
适合大内存,多cpu的服务器应用。

ZGC:
低延迟、高吞吐量的垃圾收集器。停顿时间一般不会超过10毫秒。
适合大内存并且对低延迟要求极高的应用。

=搭配==
serial 和 serial old配合使用。

parnew 和 cms 配合使用。

Parallel Scavenge 和 Parallel old配合使用。jdk 1.8默认的组合。

==cms四个阶段=
1.初始标记:标记gc roots能直接关联到的对象,stw,耗时短
2.并发标记:从gc roots能直接关联到的对象开始遍历整个对象图。耗时长,但是不需要stw。
3.重新标记:采用增量更新算法,对并发标记阶段因为用户线程的运行而产生变化的对象,重新进行标记。需要stw,但是耗时短。
4.并发清除:并发清除掉垃圾对象,不需要stw。

优点:并发标记以及并发清除节点,不需要stw,所以停顿时间短。
缺点:内存碎片 + 浮动垃圾
内存碎片:因为采用的是标记-清除算法,不会进行内存整理,所以会产生内存碎片。
浮动垃圾:并发清理阶段,用户线程在继续运行,新产生的垃圾没办法进行处理,只能等待下一次垃圾回收处理。

==G1四个阶段=
1.初始标记:标记gc roots能直接关联到的对象,stw,耗时短。还会修改TAMS(top at mark start)指针.
TAMS: G1为每个region都设计了两个TAMS指针,新分配的对象必须位于这两个指针位置以上;位于这两个位置以上的对象默认被标记为存活,不纳入回收范围。
2.并发标记:从gc roots能直接关联到的对象开始遍历整个对象图。遍历完成,还会处理SATB记录的发生变动的对象。
SATB:能够有效的解决并发标记阶段,因为用户线程运行而导致的对象变动。效率比cms重新标记阶段使用的增量更新高。
3.最终标记:stw,处理并发阶段遗留下来的少量的SATB记录。
4.筛选回收:计算各个region回收的价值,选择回收价值大的进行回收。将一个region中存活的对象,复制到另一个region中,然后清空旧的region。因为需要复制存活的对象,所以是stw的,防止用户线程干扰。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com