使用例子: -XX:CMSInitiatingOccupancyFraction=70 CMS垃圾收集器,当老年代达到70%时,触发CMS垃圾回收。

查看CMSInitiatingOccupancyFraction的初始值为-1

intx CMSInitiatingOccupancyFraction            = -1                                  {product}

那么-1代表着什么呢?

查看jvm源码可知

product(intx, CMSInitiatingOccupancyFraction, -1,                         \"Percentage CMS generation occupancy to start a CMS collection "  \"cycle. A negative value means that CMSTriggerRatio is used")

注释里也说了,如果CMSInitiatingOccupancyFraction是个负值,那么CMSTriggerRatio将被用到

那么具体是如何用到的呢?

_cmsGen ->init_initiating_occupancy(CMSInitiatingOccupancyFraction, CMSTriggerRatio);void ConcurrentMarkSweepGeneration::init_initiating_occupancy(intx io, uintx tr) {assert(io <= 100 && tr <= 100, "Check the arguments");if (io >= 0) {_initiating_occupancy = (double)io / 100.0;} else {_initiating_occupancy = ((100 - MinHeapFreeRatio) +(double)(tr * MinHeapFreeRatio) / 100.0)/ 100.0;}
}

如果CMSInitiatingOccupancyFraction在0~100之间,那么由CMSInitiatingOccupancyFraction决定。

否则由按 ((100 - MinHeapFreeRatio) + (double)( CMSTriggerRatio * MinHeapFreeRatio) / 100.0) / 100.0 决定。

那么MinHeapFreeRatio,CMSTriggerRatio的初始值是多少?

uintx MinHeapFreeRatio                          = 40                           {manageable}
uintx CMSTriggerRatio                           = 80                                  {product}

即最终当老年代达到 ((100 - 40) + (double) 80 * 40 / 100 ) / 100 = 92 %时,会触发CMS回收。

转载于:https://my.oschina.net/kayCz/blog/1526584

-XX:CMSInitiatingOccupancyFraction相关推荐

  1. -XX:CMSInitiatingOccupancyFraction和-XX:+UseCMSInitiatingOccupancyOnly参数

    -XX:CMSInitiatingOccupancyFraction:在使用CMS收集器的情况下,指定老年代被使用的内存空间的阈值,达到该阈值则触发Full GC. -XX:+UseCMSInitia ...

  2. CMS收集器几个参数详解 -XX:CMSInitiatingOccupancyFraction, CMSFullGCsBeforeCompaction

    CMSInitiatingOccupancyFraction -XX:CMSInitiatingOccupancyFraction这个参数是指在使用CMS收集器的情况下,老年代使用了指定阈值的内存时, ...

  3. -XX:CMSInitiatingOccupancyFraction=92 Java8

    Java8中,-XX:CMSInitiatingOccupancyFraction的默认值是92,详情见官网: Starting a Concurrent Collection Cycle With ...

  4. -XX:CMSInitiatingOccupancyFraction=70 和-XX:+UseCMSInitiatingOccupancyOnly

    CMS GC要决定是否在full GC时做压缩,会依赖几个条件.其中,  第一种条件,UseCMSCompactAtFullCollection 与 CMSFullGCsBeforeCompactio ...

  5. JVM -XX:CMSInitiatingOccupancyFraction=90 这个参数是有取值范围的

    CMSInitiatingOccupancyFraction值与Xmn的关系公式 promontion faild产生的原因是EDEN空间不足的情况下将EDEN与From survivor中的存活对象 ...

  6. CMS垃圾收集器小实验之CMSInitiatingOccupancyFraction参数

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 背景 测试CMSInitiatingOccupancyFracti ...

  7. JVM底层原理之标配参数、X和XX参数

    一.JVM的参数类型 (1)标配参数(以-开头)    java -version java -help java -showversion 在JDK各个版本之间稳定,很少有大的变化.   [标准VM ...

  8. tomcat 启动参数 Xms, Xmx, XX:MaxNewSize, XX:PermSize, -XX:MaxPermSize, Djava.awt.headless

    在 tomcat/bin/catalina.sh 的 第一行#!/bin/sh 下添加 JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:MaxNewSiz ...

  9. Tomcat 调优及 JVM 参数优化

    Tomcat 本身与 JVM 优化 Tomcat:调整Server.xml JVM:bat启动服务方式的话修改catalina.bat 服务式启动的话参考:http://www.cnblogs.com ...

最新文章

  1. Android- assent和raw的区别
  2. HTML5与jQuery实现渐变绚丽网页图片效果
  3. ffmpeg使用总结
  4. java中的日期时间的计算与比较
  5. MATLAB double、str、cell间的类型转换
  6. mysql update修改数据_MySQL UPDATE:修改数据(更新数据)
  7. 鸭子类型duck typing(动态)
  8. android APN的打开与关闭
  9. 案例:神经网络建模 + 可视化分析 = 提效增质的利器!
  10. CondConv: Conditionally Parameterized Convolutions for Efficient Inference
  11. 维特比算法(Viterbi algorithm) 的理解
  12. 与语音信号处理有关的java书籍_MATLAB在语音信号分析与合成中的应用 中文pdf扫描版[198MB]...
  13. 月薪30k的程序员应聘时面试官都会问什么问题
  14. 智原领先推出网通ASIC专用28纳米28G可编程SerDes
  15. 哥,8年不见,您啥时候回来?度娘想死您了!
  16. 5个简历模板下载及制作网站
  17. jmp指令和call指令
  18. 第32节:Java中-构造函数,静态方法,继承,封装,多态,包
  19. 张近东的大商之道:企业价值在于“为别人所用” | 一点财经
  20. 接口自动化测试平台Lego ------ 美团接口自动化测试超全实践【3000字长文】

热门文章

  1. 2001-2022年全国各城市风速数据(逐日、逐月、逐年)
  2. 小学生日常行为规范PPT模板
  3. 使用NAT打造FTP服务新法
  4. 做一个功能比较齐全的小程序商城选择好的系统很重要
  5. 可视化学习git的一个网站
  6. 研究生导师的“难言之隐”
  7. 商务洽谈(谈判)步骤及技巧
  8. Excel表格 |两列数据(多列)合并一列且自动换行
  9. 机器视觉之缺陷检测的光源
  10. Thingsboard开源平台(一)2.软件安装