
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
如今电脑编程越来越受到年起人的追捧,今天长沙达内培训老师就说说收集器全家桶,首先看Serial Old收集器:它是Serial收集器的老年代版本,同样是一个单线程收集器,使用标记-整理算法,Parallel Old收集器:他是Parallel Scavenge 收集器的老年代版本,使用标记-整理算法,配合PS收集器使用。
【达内编程培训】CMS收集器 Concurrent Mark Sweep: CMS是一种以获取最短回收暂停时间为目标的收集器,长沙达内培训老师从名称可以看出CMS是基于标记-整理算法实现的,它的运作过程比较复杂,整个过程分为4个步骤:
初始标记 initial mark:这个阶段会扫描root对象直接关联的可达对象。注意不会递归的追踪下去,只是到达第一层而已。这个过程,会STW,但是时间很短。
【达内计算机编程培训】并发标记 concurrent mark:这个阶段是进行真正的GC Tracing,递归分析存活对象,无须STW,重新标记 remark:需要STW,因为并发标记阶段,用户程序继续运行,所以重写标记那些产生变化的对象。
并发删除 concurrent sweep,无须STW,对分析出的死亡对象进行清理。
接着长沙it培训 老师要说的是CMS收集器的缺点,对CPU资源敏感,由于并行的特性,需要占用cpu资源,影响用户程序性能,CMS默认启动的回收线程是(CPU数量 + 3)/ 4 当CPU数量小于4个时,CPU数量越少垃圾回收线程占比越大。
无法处理浮动垃圾
Floating Garbage,可能会出现Concurrent Mode Failure,而导致另一次Full GC的产生,浮动垃圾是什么,由于并发删除阶段用户线程还在执行,自然还会产生新的垃圾,这部分垃圾在标记步骤之后,所以无法清理,只要等待下一次GC。由于并发的特性,CMS的不能像其他收集器那样等到老年代几乎完全被填满再进行收集,需要预留一部分空间提供并发收集时的用户程序使用,JDK1.5的默认设置是老年代使用了68%的空间后就会被激活,1.6为92%,这个比例可以通过参数 -XX:CMSInitiatingOccupancyFraction来调整,如果GC期间预留的内存空间无法满足用户程序要求,就会出现一次“Concurrent Mode Failure”,这时会启动后备预案,临时启用Serial Old收集器来重新进行老年代的垃圾收集,这样停顿时间就很长了。
如今编程工程师的受欢迎程度也是一直不退,也正应如此程序员的发展势头才更猛。想要跟上时代的步伐吗?想要知道上电脑编程培训班有用吗?其实达内培训老师可以很明确的告诉你,当然是有用的,it培训机构是让你能在短时间内,学习企业用人具备的知识,好了今天的内容就说到这了!想要上、程序员培训课程、编程培训技术、网络工程师培训机构就到达内培训学校吧,这里一定不会让你失望的!
扫码加入免费试听报名!