JVM快速调优手册v1.0之四:堆内存分配的CMS公式解析-创新互联

    

一.JVM 堆内存组成

Java堆由Perm区和Heap区组成,Heap区由Old区和New区(也叫Young区)组成,New区由Eden区、From区和To区(Survivor)组成。

成都创新互联公司专业为企业提供思礼网站建设、思礼做网站、思礼网站设计、思礼网站制作等企业网站建设、网页设计与制作、思礼企业网站模板建站服务,10年思礼做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

JVM快速调优手册v1.0之四:堆内存分配的CMS公式解析
Eden区用于存放新生成的对象。Eden中的对象生命不会超过一次Minor GC。

Survivor Space  有两个,存放每次垃圾回收后存活的对象,即图的S0和S1。

Old Generation  Old区,也称老生代,主要存放应用程序中生命周期长的存活对象

二.公式

将EDEN与From survivor中的存活对象存入To survivor区时,To survivor区的空间不足,

再次晋升到old gen区,而old gen区内存也不够的情况下产生了promontion faild从而导致full gc.那可以推断出:eden+from survivor < old gen区剩余内存时,

不会出现promontion faild的情况。

即:

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

进而推断出:

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

Xmx-Xmn:Old区大小。

CMSInitiatingOccupancyFraction/100:Old区百分之多少时,cms开始gc

1-CMSInitiatingOccupancyFraction/100: Old区开始gc回收时剩余空间百分比

(Xmx-Xmn)*(1-CMSInitiatingOccupancyFraction/100): Old区开始gc回收时剩余空间大小

(Xmn-Xmn/(SurvivorRatior+2)): eden+from survivor区的大小

三.参数:

-Xmx :java heap大值。建议均设为物理内存的80%。不可超过物理内存。

-Xmn:java heap最小值,一般设置为Xmx的3、4分之一,等同于-XX:NewSize 和 -XX:MaxNewSize  ,其实为young区大小。

-XX:CMSInitiatingOccupancyFraction=70 :使用cms作为垃圾回收使用70%后开始CMS收集。

-XX:SurvivorRatio=2: 生还者池的大小,默认是2。


本文名称:JVM快速调优手册v1.0之四:堆内存分配的CMS公式解析-创新互联
当前地址:http://bzwzjz.com/article/dshhci.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 定制级高端网站建设 成都网站建设 营销型网站建设 成都h5网站建设 成都网站设计 企业网站建设 营销型网站建设 成都网站制作 网站设计 高端网站建设 营销网站建设 成都网站设计制作公司 网站设计公司 成都网站建设推广 外贸营销网站建设 移动网站建设 网站制作 做网站设计 企业网站设计 成都网站建设公司 高端网站设计 四川成都网站设计