首页 > 试题广场 >

假如某个JAVA进程的JVM参数配置如下:-Xms1G -X

[单选题]
假如某个JAVA进程的JVM参数配置如下:
-Xms1G -Xmx2G -Xmn500M -XX:MaxPermSize=64M -XX:+UseConcMarkSweepGC -XX:SurvivorRatio=3,
请问eden区最终分配的大小是多少?
  • 64M
  • 500M
  • 300M
  • 100M
下图为JVM设置参数初始化时参数控制各区域内存的大小,可以看出Xmn=Eden+S0+S1 =500M,又因为Mmn初始化时Eden:S0:S1 = 3:1:1,故而Eden的大小为300M。

想要了解更多JVM内存可以看看这博客:https://blog.csdn.net/weixin_37195606/article/details/82805216


发表于 2019-08-27 10:36:31 回复(0)
    -Xms:JVM初始分配的堆内存
-Xmx:JVM最大允许分配的堆内存,按需分配、
-Xmn 500m:设置年轻代的大小为500m
-XX:MaxPermSize=64M JVM最大允许分配的非堆内存,按需分配
-XX:PermSize:JVM初始分配的非堆内存
-XX:SurvivorRatio:用于设置Eden和其中一个Survivor的比值,默认比例为8(Eden):1(一个survivor),解释一下这个,题目中设置的值为3,也就是说,Eden:Survivor = 3:2,如果设置为4,那么就是Eden:Survivor = 4:2.
-XX:-UseConcMarkSweepGC:对老生代采用并发标记交换算法进行GC

题目中,新生代的大小为500m,又由于其比例Eden:Survivor = 3:2,所以Eden区最终分配的大小是300m。
编辑于 2019-10-16 09:19:03 回复(2)
xmn初生代500m比例为3:1:1
发表于 2019-10-11 09:06:37 回复(0)
xmn初生代500m比例为3:1:1
发表于 2019-08-20 12:55:01 回复(0)