文档章节

-XX:CMSInitiatingOccupancyFraction

小胖子编程
 小胖子编程
发布于 2017/08/30 22:54
字数 217
阅读 9
收藏 0
点赞 0
评论 0

使用例子: -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回收。

© 著作权归作者所有

共有 人打赏支持
小胖子编程
粉丝 1
博文 9
码字总数 9126
作品 0
绍兴
jvm参数解析

GC日志文件配置 -Xloggc:./logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M 不小心忘记配置gc日志文件大小切割,久而久之,gc log文件很大,在gc日...

将将将
2016/10/22
34
0
迄今为止最优的Eclipse运行性能调优 ,含eclipse.ini

最近,Eclipse(Eclipse-JEE3.5)运行十分缓慢(可能插件安装过多),因此,得到了个机会调优一下,以便提高工作效率 下图是未经任何调整eclipse的gc情况(使用jvisualvm命令,安装visual gc...

JAVA_NINA
2016/08/09
237
0
RokceMQ 部署成功了,但是发送消息失败

[root@server bin]# ps aux|grep java root 2623 0.1 0.8 5400396 30464 ? Sl 05:46 0:05 /usr/local/jdk1.7.025/bin/java -server -Xms4g -Xmx4g -Xmn2g -XX:PermSize=128m -XX:MaxPermSize......

秦小鱼儿
2016/11/16
235
1
配置tomcat jvm参数

java -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -server -Xmx1g -Xms1g -Xmn256m -XX:PermSize=128m -Xss256k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSPa......

月下独酌100
2016/07/28
22
0
Tenured 区并发垃圾回收器CMS介绍

转自:http://javis163.iteye.com/blog/1679059 当使用CMS收集器时,当开始进行收集时,old代的收集过程如下所示: 1,首先jvm根据-XX:CMSInitiatingOccupancyFraction,-XX:+UseCMSInitiati...

2k10
2015/10/10
191
0
The stack size specified is too small, Specify at

服务器上启动一个java程序,其他服务器正常,有一个老是失败,最后发现了: The stack size specified is too small, Specify at least 228k 我的jvm参数是: -server -Xmx2048m -Xms2048m ...

昏鸦
2015/04/27
0
0
【7】JVM参数说明和分析

不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略, 调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序...

无信不立
2017/02/24
0
0
idea64.exe.vmoptions

xjt2016
2016/10/13
16
0
zabbix一直报警,提示Scavenge回收时间超过MarkSweep,请问这个问题严重吗?如果严重,需要怎么解决?

GC配置的是通用的CMS。 JAVAOPTS="$JAVAOPTS -Xms2048m -Xmx2560m -XX:MaxPermSize=2048m" JVMOPTS="$JVMOPTS -XX:+UseParNewGC" JVMOPTS="$JVMOPTS -XX:+UseConcMarkSweepGC" JVMOPTS="$JV......

月之静谧
2016/01/14
410
0
IDEA15 idea64.exe.vmoptions optimization

-ea -server -Xms1g -Xmx1g -Xss16m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DoEscapeAnalysis -XX:+UseCompressedOops -XX:+UnlockExperimentalVMOptions -XX:+UseConcMarkSweepGC -X......

阿凡达纳
2015/11/29
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Scala Configuration 相关API

Play使用了 Typesafe config library,但是也提供了一个有着更多Scala高级特性的的 Configuration 封装。不熟悉Typesafe配置的开发者可以移步 configuration文件的语法和特性文档。 读取配置...

Landas
今天
1
0
使用cookie技术 记住账号

1. 效果 2. 实现过程 2.1 前端 将用户的选中传递给后台 这个参数的获取是 参考:https://my.oschina.net/springMVCAndspring/blog/1860498 // var rememberLogin = $("#rememberLoginId").i...

Lucky_Me
今天
1
0
《趣谈网络协议》02之网络分层的真实含义

一、提出问题 1.提出问题 当你听到什么二层设备、三层设备、四层 LB 和七层 LB 中层的时候,是否有点一头雾水,不知道这些所谓的层,对应的各种协议具体要做什么“工作”? 2.这四个问题你弄...

aibinxiao
今天
2
0
Python3学习日志二 Python中的集合set和字典dict

1.集合set 定义一个集合set 我们可以看到定义集合set有两种不同的形式,如果要定义一个空的集合set不能用{}而是要用set();另外,集合是无序的,而且set中的元素是不可重复的,如果你定义了一...

Mr_bullshit
今天
0
0
adb 操作指令详解

ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。...

孟飞阳
今天
0
0
nodejs安装以及环境配置(很好的node安装和配置文章,少走很多弯路)

一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进...

sprouting
今天
1
0
Redisson

了解了Redisson,发现使用挺简单的,接下来准备深入学习一下。 Redisson介绍 Redisson是架设于Redis基础之上的一个Java驻内存数据网格(In-Memory Data Grid) Redisson在基于NIO的Netty框架上...

to_ln
今天
0
0
python有哪些好玩的应用实现,用python爬虫做一个二维码生成器

python爬虫不止可以批量下载数据,还可以有很多有趣的应用,之前也发过很多,比如天气预报实时查询、cmd版的实时翻译、快速浏览论坛热门帖等等,这些都可以算是爬虫的另一个应用方向! 今天给...

python玩家
今天
0
0
python爬虫日志(3)-爬去异步加载网页

在浏览器检查元素页面中,选取Network中的XHR选项即可观察每次加载页面,网页发出的请求,观察url的规律即可利用封装的函数对每一页进行爬取。

茫羽行
今天
0
0
Python数据分析numpy基础-维度的认识

什么是多维数组? 核心对象是同型的多维数组(简单理解就是一个表格,通常内容都是些数字),具有相同的数据类型。 概念: 1. axes(轴):数组的维度统称为轴。 2. rank:轴的数量称为rank。...

十年磨一剑3344
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部