如何计算Eden区的大小

转载来源https://blog.csdn.net/decorator2015/article/details/50970999

如何计算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区多)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值