一、boolean 类型
公式
-XX:+(-)某个属性
+:表示开启
-:表示关闭
举例
1、是否打印GC收集细节:
-XX:-PrintGCDetails (开启)
-XX:+PrintGCDetails (关闭)
2、是否使用串行垃圾回收器
-XX:-UseSerialGC(开启)
-XX:+UseSerialGC(关闭)
二、KV设值类型
公式
-XX:属性key=属性值value
举例
1、设置元空间大小
-XX:MetaspaceSize=128m
2、设置 young区到老年区需要活过的次数
-XX:MaxTenuringThreshold=15
3、设置新生代中Eden 和 S0/S1空间的比例
-XX:SurvivorRatio=8
- 默认-XX:SurvivorRatio=8,即Eden:S0:S1 = 8:1:1。
- 假如:-XX:SurvivorRatio=4,那么Eden:S0:S1 = 4:1:1,即:SurvivorRatio值就是设置Eden区比例占多少,S0/S1相同。
- 以下是-XX:SurvivorRatio=4的示例,很明显Eden的容量是from区和 to区的四倍
4、设置新生代与老年代在 堆结构中的占比
- 默认-XX:NewRatio=2,年轻代占整个堆的1/3
- 假如:-XX:NewRatio=4:新生代占1,老年代占4,年轻代占整个堆的1/5
- NewRatio就是设置老年代的占比,剩下的1给新生代
5、设置初始堆空间
初始堆空间、默认是物理内存的1/64
-XX:InitialHeapSize=10m
等价于
-Xms10m
6、设置最大堆空间
默认为物理内存的1/4
-XX:MaxHeapSize=1024m
等价于
-Xmx1024m
7、设置单个线程栈的大小
默认为512K~1024K
-XX:ThreadStackSize=1024m
等价于
-Xss1024
8、设置年轻代大小
-Xmn1024m
9、设置老年代大小
哈哈,没有这个配置
老年代的大小就是,堆大小 减去 年轻代大小
10、永久代大小设置
什么时候永久代?https://www.yuque.com/wangchao-volk4/fdw9ek/au2gyk#JD7ij
-XX:PermSize=1024m
-XX:MaxPermSize=1024m