使用格式:java -jar .jar -D -XX:** -X*等
使用参数前缀说明
- -D 表示工程项目使用到的参数,即application.properties文件中的参数,非JVM参数,优先级比工程文件配置的要高
- -X 标准参数-JVM个版本中是不会更改的
- -XX 非标准参数,不同的jvm实现可能不一样,主要用于JVM调优和debug使用
1.Boolean 类型
-XX:[+-]<name> +或-表示启用或者禁用name属性 如:-XX:+UseConcMarkSweepGc 表示启用CMS垃圾收集器
2.费Boolean型
-XX<name>=value 表示name的属性值设置为value 如 XX:MaxHeapSize=1000M(等价于Xmx1000M)
-Dserver.port=8080 设置服务的端口为8080
-Xms2g 设置初始化堆大小2G
-XX:<option>=<param> 设置option的值为param 如-XX:SurvivorRatio=8
-XX:+<option> 启用option 如-XX:+UseConcMarkSweepGC
-XX:-<option> 关闭option
栗子如下:
- -Xms2g 初始化堆大小2G
- -Xmx2g 最大堆大小
- -Xmn512M 新生代大小512M
- -XX:SurvivorRatio=8 新生代Eden区/Survivor等于8
- -Xss256k 线程栈大小,表示方法能调用到的最大深度,超过抛StackOverflowError,设置的值越大,可能会造成服务能创建的线程数越少。
- -XX:+UseConcMarkSweepGC 使用CMS GC收集器
- -XX:+CMSParallelReamrkEnable 启用并行标记,降低标记停顿,配合UseConcMarkSweepGC一起使用
- -XX:UseCMSCompackAtFullCollection FULL GC的时候对年老代的压缩,减少内存碎片整理但顿时间会边长,慎用。配合UseConcMarkSweepGC一起使用
- -XX:+UseCMSInitiatingOccupancyOnly 使用设定的回收阈值(下面指定的75%)开始CMS收集,如果不指定,JVM仅在第一次使用设定值,后续则自动调整
- -XX:CMSInitiatingOccupancyFraction=75 使用cms作为垃圾回收使用75%后开始CMS收集,和UseCMSInitiatingOccupancyOnly成对使用
- -XX:+HeapDumpOnOutOfMemoryError 当JVM发生OOM时,自动生成DUMP文件,非常实用
- -XX:HeapDumpPath=D:/data/log 生成DUMP文件的路径,也可以指定文件名称,如果不指定文件名,默认为:java_pid_date_time_heapDump.hprof,结合HeapDumpOnOutOfMemoryError一起使用。