如何计算Eden区的大小

如何计算Eden区的大小

题目

已知虚拟机的一些参数设置如下:
-Xms:1G;
-Xmx:2G;
-Xmn:500M;
-XX:MaxPermSize:64M;
-XX:+UseConcMarkSweepGC;
-XX:SurvivorRatio=3;
求Eden区域的大小?

分析

这是网易2016年在线笔试题中的一道选择题。
先分析一下里面各个参数的含义:
-Xms:1G , 就是说初始堆大小为1G
-Xmx:2G , 就是说最大堆大小为2G
-Xmn:500M ,就是说年轻代大小是500M(包括一个Eden和两个Survivor)
-XX:MaxPermSize:64M , 就是说设置持久代最大值为64M
-XX:+UseConcMarkSweepGC , 就是说使用使用CMS内存收集算法
-XX:SurvivorRatio=3 , 就是说Eden区与Survivor区的大小比值为3:1:1

题目中所问的Eden区的大小是指年轻代的大小,直接根据-Xmn:500M和-XX:SurvivorRatio=3可以直接计算得出

500M*(3/(3+1+1))
=500M*(3/5)
=500M*0.6
=300M
所以Eden区域的大小为300M。

小结

1,整个堆包括年轻代,老年代和持久代。其中年轻代又包括一个Eden区和两个Survivor区。

2,年轻代
-XX:NewSize (for 1.3/1.4) ,
-XX:MaxNewSize (for 1.3/1.4) ,
-Xmn

2,持久代
-XX:PermSize
-XX:MaxPermSize

3,年轻代和老年代的比例
-XX:NewRatio(年轻代和老年代的比值,年轻代多,除去持久代)
当设置了-XX:+UseConcMarkSweepGC后,会使-XX:NewRatio=4失效,此时需要使用-Xmn设置年轻代大小

4,Eden与Survivor的比例
-XX:SurvivorRatio(Eden区与两个Survivor区的比值,Eden区多)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用方法: 将jar包放置在运行java项目的机器上 运行指令 java -jar java_monitor-0.0.2-SNAPSHOT.jar --server.prot=8888 启动成功后访问默认端口8888 1.自定义端口 在执行jar包时追加参数 --server.port=9999 2.自定义监控周期 默认监控频率为60秒,并且只记录当天产生的监控数据。 如果需要自定义监控频率与监控时长,只需要在jar包所在目录下新建application.properties文件,修改下列字段即可 monitor.rate=60 #监控频率/秒 monitor.cron=0 0 0 * * ? #每日的0:00:00时刻清空数据 连续监控1个月,示例 monitor.cron=0 0 0 1 * ? 连续监控1年,示例 monitor.cron=0 0 0 1 1 ? * 不新建文件,使用追加参数的方法也是可以的。 3.监控参数 监控参数的含义如下: S0C:s0(from)的大小(KB) S1C:s1(from)的大小(KB) S0U:s0(from)已使用的空间(KB) S1U:s1(from)已经使用的空间(KB) EC:eden大小(KB) EU:eden已经使用的空间(KB) OC:老年代大小(KB) OU:老年代已经使用的空间(KB) MC:元空间的大小(Metaspace) MU:元空间已使用大小(KB) CCSC:压缩类空间大小(compressed class space) CCSU:压缩类空间已使用大小(KB) YGC:新生代gc次数 YGCT:新生代gc耗时(秒) FGC:Full gc次数 FGCT:Full gc耗时(秒) GCT:gc总耗时(秒) Loaded:表示载入了类的数量 Unloaded 表示卸载类的数量 Compiled 表示编译任务执行的次数 Failed表示编译失败的次数 total:线程总数 RUNNABLE:正在运行的线程数 TIMED_WAITING:休眠的线程数 WAITING:等待的线程数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值