GC学习入门 看这一篇就够了(基于Oracle JDK 8) (3)

在内存调优中, 内存设置越大, 处理请求的效率也就越高, 但同时垃圾收集所需要的时间也就越长, 在垃圾收集期间的处理效率肯定会受影响, 因此需要作出相应的权衡.

关于 promotion failed(晋升失败) : JVM发生Young GC时, Eden区存活的对象 和 Eden区的From块中存活的对象, 两者的体积超过了Eden区中To块的大小, Young GC的悲观策略将使这些存活的对象都迁移到Old区, 而此时Old区的大小不足以容纳这些对象, 从而发生promotion failed, 程序将暂停很长时间.

CMSInitiatingOccupancyFraction的设置技巧: 参考: CMSInitiatingOccupancyFraction计算公式

(Xmx-Xmn) * (1-CMSInitiatingOccupancyFraction / 100) >= (Xmn-Xmn / (SurvivorRatior+2))

进而推断出:

CMSInitiatingOccupancyFraction <= ( (Xmx-Xmn) - (Xmn-Xmn / (SurvivorRatior+2) ) ) / (Xmx-Xmn) * 100

参考资料:

JVM内存管理——垃圾搜集器参数精解

JVM系列三:JVM参数设置、分析

G1(Garbage-First)垃圾回收器

版权声明

作者: ma_shoufeng(马瘦风)

出处: 博客园 马瘦风的博客

您的支持是对博主的极大鼓励, 感谢您的阅读.

本文版权归博主所有, 欢迎转载, 但未经博主同意必须保留此段声明, 且在文章页面明显位置给出原文链接, 否则博主保留追究法律责任的权利.

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpsjyf.html