Java性能权威指南 8.2分
读书笔记 并发模式失效以及晋升失败的原因
Terminalist

发生并发模式失效:reason1:往往是由于CMS不能足够快的速度清理老年代空间(其实就是因为线程竞争导致的),新生代需要进行垃圾回收时,CMS收集器计算发现老年代没有足够的空闲空间可以容纳这些晋升对象,不得不对老年代进行垃圾回收;这时CMS垃圾回收就会退化成Full GC,所有的应用线程都会被暂停(对整个堆空间进行压缩整理,可增加了停顿时间),老年代中所有的无效对象都被回收。reason2:老年代有足够的空间可以容纳晋升的对象,但是由于空闲空间的碎片化(或者是由于晋升实际要占用的内存超过了CMS收集器的判断),CMS收集器无法晋升这些对象,导致晋升失败;

并发模式失效

避免并发模式失效

0
《Java性能权威指南》的全部笔记 7篇
豆瓣
我们的精神角落
免费下载 iOS / Android 版客户端