用什么程序做视频网站,wordpress添加固定结尾,wordpress 影视源码,网站视频如何下载JVM-CMS垃圾回收器
CMS垃圾回收的步骤
1. 初始标记#xff08;InitialMarking#xff09; 这是一个STW的过程#xff0c;并行标记#xff0c;只是标记GC Roots能直接关联到的对象。由于GC Root直接关联的对象少#xff0c;因此STW时间比较短。 2. 并发标记 非STW的过程InitialMarking 这是一个STW的过程并行标记只是标记GC Roots能直接关联到的对象。由于GC Root直接关联的对象少因此STW时间比较短。 2. 并发标记 非STW的过程并发标记业务线程和GC线程同时运行由CPU进行调度。这里标记的算法是三色标记算法由于并发标记在标记过程中会导致对象之间的引用发生变化采用增量更新方法解决这个问题 3. 重新标记 STW的过程重新标记在并发标记过程中引用发生了变化或者新产生的对象。主要包括年轻代对象晋升到老年代可能产生新的存活对象大对象直接被分配到老年代可能产生新的存活对象老年代和年轻代对象的引用关系发生变化 4. 并发清除 最后GC线程会清除不再被引用的对象并回收他们占用的内存空间非STW由于前面的标记阶段已经将还在使用的对象标记了出来在此过程中新产生的垃圾只能等待下次GC CMS特点与问题 Concurrent mark sweep并发标记清除在CMS之前都是STW的。浮动垃圾问题CPU要求高CMS默认启动的回收线程数为CPU数量3/4当CPU不足4个时候效率低标记清除算法导致内存碎片化严重 小结CMS从提出概念到实际完成用了10年多的时间在此之前没有过并发回收的垃圾回收器因此它是一个垃圾回收器的里程碑后来的G1也是基于CMS做的一些改进。由于CMS是并发清除的新时代它也存留了很多问题JDK任何版本都不会使用CMS作为默认垃圾回收器。
三色标记算法 它是一个标记算法不负责清除。从root开始遍历链表并用白、灰、黑三种颜色来标记对象的状态。没有被标记过的为白色被标记过但是没有遍历完其子节点的标记为灰色对象本身及其子节点都被遍历过的标记为黑色。多标问题在标记完成后对象引用断开被引用对象变为垃圾对象但是已经被标记过了产生浮动垃圾这个问题并不大等待下次GC即可漏标问题至少有一个黑色对象新增了对白色对象的引用所有灰色对象指向该白色对象的引用都断开了这个问题比较严重CMS使用增量更新的方法解决。 CMS如何解决漏标问题 incremental update:增量更新关注引用的增加如果要给黑色对象引用增加将黑色对象标记为灰色