专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

java面试中常问的垃圾收集器CMS和G1是什么_java

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/5 20:28:55       共计:3557 浏览

java面试中常问的垃圾收集器CMS和G1是什么?

面试中经常被问到CMS和G1垃圾收集器,故来总结下!

CMS收集器:concurrent mark and sweep,并发标记和清除,追求最少的时间停留的收集器!

CMS执行收集步骤:

1,初始标记:快速标记GC roots能直接关联到的对象,速度快;需要STW(stop the world)

2,并发标记:进行GC Roots Tracing;(时间长,但是可以和用户线程并行执行)

3,重新标记:标记并发标记期间,用户程序继续运行而导致的标记变化(stop the world)

4,并发清除:并行执行垃圾清除,这一步也会产生浮动垃圾;(时间长,但是可以和用户线程并行执行)

优点:并发执行效率好,停顿时间短;

缺点:

1,并发清除的时候产生浮动垃圾;

2,标记-清除算法,产生大量的内存碎片,很容易引发full gc;

3,默认启用的处理线程数为(CPU的个数+3)/4,即至少使用25%的CPU,多的话会是100%;

CMS主要针对老年代的垃圾收集,通常和ParNewGC(新生代收集)一起使用;

G1:将整个堆内存分为大小相等的多个独立region区,保留新生代,老年代概念,却没有做物理隔离,G1记录每个region中的对象活性,根据用户设置的停顿时间,选择活性更低的region进行回收,这样能降低停顿时间;

G1新生代收集:新生代达到比例的时候进行收集,根据统计信息动态调整Eden和Survivor的大小,合理利用内存;

G1老年代收集:

1,初始标记:跟CMS类似

2,并发标记:跟CMS类似

3,最终标记:跟CMS类似

4,筛选回收:对所有region中的回收成本进行排序,同时根据用户设定的停顿时间来指定回收计划,并发清除对象(stop the world)

G1优点:

1,停顿时间可预测:根据用户设定的停顿时间进行stop the world和gc;

2,region的回收具有优先级:对象收集更有效率和针对性;

3,标记-整理算法:不再有内存碎片产生;

下个帖子将会详细讲一下jvm中的相关内容,需要的朋友一定要关注哦。。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:跟父母意见起冲突_PHP基础 | ·下一条:C中byte数组与int怎么转化_java

Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有