Hotspot运行时数据区主要分为5个(堆、栈、方法区、本地方法区、程序计数器),还有个Direct Memory,其中可控的为堆、栈和(本地)方法区(Direct Memory默认跟-Xmx一样大,可使用-XX:MaxDirectMemorySize指定),这里不讨论Direct Memory
1、
命令 | 作用 |
-Xms | 堆的初始值 |
-Xmx | 堆的最大值 |
-Xmn | 年轻代默认值 |
-XX:ServivorRatio | Eden和Servivor的比值 |
-XX:MaxTenuringThreshold | 经过n次minor GC后对象进入年老代 |
注:年老代=heap-年轻代
2、栈的参数:-Xss:每个栈的大小,栈的总大小=进程最大值-(堆+方法区大小+程序计数器)=线程数*(-Xss),所以-Xss越小,能开的线程越多,但是可能导致栈溢出
3、方法区参数:-XX:PermSize:默认大小,-XX:MaxPermSize:最大值