Log1是一款内容管理系统,界面超级朴素!!
问题1:CMS和G1的重新标记,最终标记的目的是什么? 工作流程上来看,CMS的重新标记,和G1的最终标记之前,都是并发标记!并发标记就是,标记程序和用户程序同时执行!既然是同时运行,用户程序就可能修改对象的引用关系!修改对象引用关系就可能影响GC回收!所以,CMS重新标记,G1最终标记都是为了解决一件事,那就是 并发标记过程中用户程序修改了对象引用关系后,如何让GC收集器仍旧能正确回收垃圾对象的
转自https://mp.weixin.qq.com/s?__biz=MzIwMzY1OTU1NQ==&mid=2247485858&idx=1&sn=dad86c9459224bc8a8a2721af2afe3bd&chksm=96cd49eea1bac0f8c15fc1ac7cea55b8de48ec74e6e3a47e954d464561051223010fe14db205&scene=0&
cms回收器执行步骤 1、初始标记:GC roots 可以理解为对象指向的标记 2、并发标记: GC roots Tracing 可以理解为 通过初始标记找到了要删除的对象 也就是堆中的指向对象 3、重新标记: 可以理解为重新执行了一遍 初始标记 和 并行标记 产生标记记录 4、删除标记:标记删除发进行并发删除 优点:并行执行,低停顿 缺点: 1、不停顿耗线程,耗内存,整体效率低 2、标记
转载请注明出处:https://blog.csdn.net/l1028386804/article/details/83722275 前言 CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器