JVM内存常用参数设置
堆内存
最大堆内存(新生代和老年代之和的最大值)
-Xmx
最小堆内存(初始大小)
-Xms
新生代大小
一般设置为整个堆内存的 1/3或者1/4
-Xmn
等效于设置了-XX:NewSize
与-XX:MaxNewSize
相同大小-XX:NewSize
设置新生代的初始大小-XX:MaxNewSize
设置新生代的最大值 设置不同的
-XX:NewSize
与-XX:MaxNewSize
可能会导致内存震荡,以减少运行期间系统在内存申请上所花的开销-XX:SurvivorRadio
用来设置新生代eden空间与s0空间的比例关系 s0与s1空间又分别称为from空间和to空间),并在Minor GC后会互换角色
常用比例
eden:s0:s1 = 8:1:1
老年代大小
-XX:NewRadio
用来设置老年代与新生代的比例(2:1/3:1)
-Xss
用来设置线程栈的大小方法区(持久代)
HotSpot 虚拟机
-XX:MaxPermSize
设置方法区的最大值;-XX:PermSize
设置方法区的初始大小 一般设置为
64MB
已经可以满足绝大部分的应用程序工作,如果依然出现方法区溢出,可以将值设置为128MB
若依然不能满足,则应该考虑优化程序设计