JVM内存配置参数题目

来源:互联网 发布:mac word 修改用户名 编辑:程序博客网 时间:2024/06/08 17:28

对于JVM内存配置参数:
-Xmx10240m -Xms10240m -Xmn5120m -XXSurvivorRatio=3
,其最小内存值和Survivor区总大小分别是()

参数解释:

-Xms :设置堆的最小值
-Xmx:设置堆的最小值和最大值。
-Xmn:设置了新生代的大小为5120m
-XXSurvivorRatio=3:设置eden:survivor=3:1

jvm内存区域解析

jvm中分为堆和方法区
堆又进一步分为新生代和老年代
方法区为永久代
堆中区分的新生代和老年代是为了垃圾回收,新生代中的对象存活期一般不长,而老年代中的对象存活期较长,所以当垃圾回收器回收内存时,新生代中垃圾回收效果较好,会回收大量的内存,而老年代中回收效果较差,内存回收不会太多。
基于以上特性,新生代中一般采用复制算法,因为存活下来的对象是少数,所需要复制的对象少,而老年代对象存活多,不适合采用复制算法,一般是标记整理和标记清除算法。
因为复制算法需要留出一块单独的内存空间来以备垃圾回收时复制对象使用,所以将新生代分为eden区和两个survivor区,每次使用eden和一个survivor区,另一个survivor作为备用的对象复制内存区。

题目解析:

最小内存值就是初始堆的大小

-Xmn设置了新生代的大小为5120m,而-XXSurvivorRatio=3
eden+2*survivor=5120
3*survivor+2*survivor=5120
5*survivor=5120
survivor=1024