- -Xms20M: 表示设置JVM启动内存的最小值为20M,必须以M为单位。
- -Xmx20M: 标识设置JVM启动内存的最大值为20M,必须以M为单位。将-Xms和-Xmx设置为一样可以避免JVM内存自动扩展。大的项目-Xms和-Xmx一般都要设置到10G,20G甚至更高。
- -verbose:gc 表示输出虚拟机中GC的详细情况
- -Xss128k 表示可以设置虚拟机栈的大小为128k
- -Xoss128k 表示设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的
- -XX:PermSize=10M 表示JVM初始分配的永久代的容量,必须以M为单位
- -XX:MaxPermSize=10M 表示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
- -Xmn20M 表示设置年轻代的大小为20M
- -XX:+HeapDumpOnOutOfMemoryError 表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照
- -XX:+UseG1GC 表示让JVM使用G1垃圾收集器
- -XX:+PrintGCDetails 表示在控制台上打印出GC具体细节
- -XX:+PrintGC 表示在控制台上打印出GC信息
- -XX:+PrintHeapAtGC 表示可以看到每次GC前后堆内存布局
Java虚拟机参数有上百个,性能调优中很大一块就是选择这上百个参数中的某些重要参数进行设置,并且根据项目运行情况对参数进行不断调整以求达到一个性能最佳点。性能调优说有捷径也有捷径,百度搜一份别人推荐的JVM参数设置改改就好了,那至于具体好不好就说不上了,但起码保证能用吧;性能调优说没捷径也没捷径,如果对JVM的性能有严苛的要求并且希望细化到每一个小点,达到能达到的最佳值,那首先就必须对于Java虚拟机,对于每一个虚拟机参数有着深刻的理解才行。