关注
首先CMS是一个old gen收集器。 initial mark阶段需要找到所有的GC roots,这个阶段会STW,GC roots选取比较快,所以停顿时间不会太长。 concurrent mark阶段,GC roots tracing,扫描整个heap上(包括young gen和old gen)的所有存活的对象,这个阶段是和用户线程并发执行的,用户线程感知不到停顿。 remark阶段,需要修正在concurrent mark阶段发生变化的引用关系,具体就是young gen有新的对象加入,需要扫描整个young gen,修正引用关系,这个阶段需要STW,CMS最长的停顿时间在这个阶段,young gen越大,停顿时间越长(CMS之前可先跑一次young GC,降低remark阶段停顿时间)。 concurrent sweep阶段:并发清除。 CMS用的是mark sweep算法,会有内存碎片,如果CMS GC之后old gen仍然无法分配,就会启动backup的serial old进行full GC。平时CMS GC old gen跑到一定的容量的时候,也会用serial old跑一次full GC。
查看原帖
点赞 1
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-29 17:10
莆田学院 测试开发 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 在大厂上班是一种什么样的体验 #
10586次浏览 132人参与
# 你认为工作的意义是什么 #
249191次浏览 1498人参与
# 程序员找工作至少要刷多少题? #
18329次浏览 246人参与
# 为了减少AI幻觉,你注入过哪些设定? #
4535次浏览 147人参与
# 我现在比当时_,你想录用我吗 #
8634次浏览 111人参与
# 机械人避雷的岗位/公司 #
43369次浏览 298人参与
# 一张图晒一下你的AI员工 #
4997次浏览 114人参与
# 论秋招对个人心气的改变 #
10770次浏览 154人参与
# 关于春招/暑期实习,你想知道哪些信息? #
7420次浏览 119人参与
# 刚入职的你踩过哪些坑 #
6783次浏览 127人参与
# AI Coding的使用心得 #
4601次浏览 101人参与
# 晒晒你司的新年福利 #
8415次浏览 105人参与
# 牛客AI体验站 #
6702次浏览 185人参与
# 12306一秒售罄,你抢到回家的票了吗? #
1944次浏览 47人参与
# 柠檬微趣工作体验 #
14769次浏览 83人参与
# 总结:哪家公司面试体验感最差 #
92985次浏览 430人参与
# 程序员能干到多少岁? #
8549次浏览 115人参与
# 你认为小厂实习有用吗? #
118024次浏览 679人参与
# 互联网公司评价 #
485569次浏览 4109人参与
# 应届生进小公司有什么影响吗 #
118270次浏览 1159人参与