- -Xms20M
设置堆容量的最小值为20M,必须以M为单位 -Xmx20M
设置堆容量的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般都要设置到15G、25G甚至还要高。-verbose:gc
输出虚拟机中GC的详细情况。
-Xss256k
设置虚拟机栈的大小为256k。-Xoss128k
设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的-XX:PermSize=64M
JVM初始分配的永久代的容量,必须以M为单位,大部分情况下这个参数默认为64M。
-Xnoclassgc
关闭JVM对类的垃圾回收。-XX:+TraceClassLoading
查看类的加载信息。-XX:+TraceClassUnLoading
查看类的卸载信息。
-XX:NewRatio=4
设置年轻代:老年代的大小比值为1:4,这意味着年轻代占整个堆的1/5。-XX:SurvivorRatio=8
设置2个Survivor区:1个Eden区的大小比值为2:8,这意味着Survivor区占整个年轻代的1/5,这个参数默认为8。
-Xmn30M
设置年轻代的大小为20M。
-XX:+HeapDumpOnOutOfMemoryError
可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照。-XX:+UseG1GC
让JVM使用G1垃圾收集器。
-XX:+PrintGCDetails
在控制台上打印出GC具体细节。
-XX:+PrintGC
在控制台上打印出GC信息。-XX:PretenureSizeThreshold=5242880
表示对象大于5242880(5M)时直接进入老年代分配,这里只能以字节作为单位。
-XX:MaxTenuringThreshold=2
表示对象年龄大于1,自动进入老年代。-XX:CompileThreshold=600
表示一个方法被调用600次之后,会被认为是热点代码,并触发即时编译。
-XX:+PrintHeapAtGC
可以看到每次GC前后堆内存布局。-XX:+PrintTLAB
表示可以看到TLAB的使用情况。-XX:+UseSpining
开启自旋锁。-XX:PreBlockSpin
更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁。
如有不准确,还请见谅。