| 参数 | 作用 | 描述 |
|---|---|---|
| -Xss | 设置单个线程栈容量大小 | 在相同物理内存下,减小这个值能生成更多的线程。JDK8默认1024k,可通过命令查看默认大小: java -XX:+PrintFlagsFinal -version |
| -Xms | 初始堆大小(最小堆) | 可以使用jmap -heap |
| -Xmx | 最大堆大小 | 默认物理内存的1/4 |
| -Xmn | 年轻代大小(Sun官方推荐配置为整个堆的3/8)。 | 年轻代分为一个Eden和两个Survivor |
| -XX:PermSize | 设置方法区初始化值 | JDK1.8已经移除 |
| -XX:MaxPermSize | 设置方法区最大值 | JDK1.8已经移除 |
| -XX:MaxmetaspaceSize | 设置元空间最大值 | JDK1.8开始 |
| -XX:metaspaceSize | 设置元空间初始值 | JDK1.8开始 |
| -XX:MinmetaspaceFreeRatio | 在垃圾收集之后控制最小的元空间剩余容量百分比 | |
| -XX:Max-MinmetaspaceFreeRatio | 在垃圾收集之后控制最大的元空间剩余容量百分比 | |
| -XX:MaxDirectMemorySize | 设置直接内存最大值,如果不设置默认与Java(-Xmx)堆最大值一直 | |
| -XX:NewRatio | 设置Yong 和 Old的比例 | 比默认值为2,即Old Generation是 Yong Generation的2倍,即Yong Generation占据内存的1/3 |
| -XX:NewSize | 设置Yong Generation的初始值大小 | |
| -XX:MaxNewSize | 设置Yong Generation的最大值大小 | |
| -XX:SurvivorRatio | 设置Eden和一个Suivior的比例 | 默认值为8,即Eden是To(S2)的比例是8,(From和To是一样大的),此时Eden占据Yong Generation的8/10 |
| -XX:InitialTenuringThreshol | 设置晋升到老年代的对象年龄的最小值 | 默认为7 |
| -XX:MaxTenuringThreshold | 设置晋升到老年代的对象年龄的最大值 | 默认15 |
| -XX:+UseParNewGC | 指定使用 ParNew + Serial Old 垃圾回收器组合; | |
| -XX:+UseParallelOldGC | 指定使用 ParNew + ParNew Old 垃圾回收器组合; | |
| -XX:+UseConcMarkSweepGC | 指定使用 CMS + Serial Old 垃圾回收器组合; | |
| -XX:+PrintGC | 开启打印 gc 信息; | |
| -XX:+PrintGCDetails | 打印 gc 详细信息。 | |
| -XX:PretenureSizeThreshold | 大于这个值的对象直接进入老年代 | |
| -XX:+HeapDumpOnOutOfMemoryError | 让虚拟机在出现内存溢出异常时Dump出当前的内存转储快照以便事后进行分析 |



