此篇博文适用于Java8,因为官网相关文档不太好找,所以在无意间看到该文档,故特地整理了一下常用的参数记录下来,方便以后查阅。官网地址
-verbose
该参数表明需要输出指定的详细信息。
-verbose:class显示每个加载类的消息-verbose:gc显示垃圾回收相关信息-verbose:jni输出关于Java Native方法的调用信息
-Xms
该参数用于设置堆的最小值和初始大小(字节),要求是1024的的倍数且大于1M。允许通过k(或K)、m(或M)、g(或G)设置大小,如:
-Xms6291456-Xms6144k-Xms6m该参数如果未设置,则其初始值将为分配给新生代与老年代的大小之和。-XX:InitalHeapSize也可用于设置初始堆大小。
-Xmn
该参数用于设置新生代堆的最大值与初始值。允许通过k(或K)、m(或M)、g(或G)设置大小,如:
-Xmn256m-Xmn262144k-Xmn268435456新生代堆内存区域通常用于存储一些“朝生夕死”的新对象,较其他内存区域垃圾回收频率较高,如果设置的过小,会导致Minor GC过于频繁。如果设置的过大,则只会触发Full GC,导致垃圾回收时间过长,因此推荐将新生代堆内存大小设置为整个堆内存的1/4~1/2。
可使用-XX:NewSize与-XX:MaxNewSize参数来代替-Xmn设置新生代堆的初始值和最大值。
-Xss
该参数用于设置栈的大小。允许通过k(或K)、m(或M)、g(或G)设置大小,如:
-Xss1m-Xss1024k-Xss1048576该参数作用等同于-XX:ThreadStackSize对于不同的平台,该参数默认值不同:- Linux/ARM (32-bit): 320 KB
- Linux/i386 (32-bit): 320 KB
- Linux/x64 (64-bit): 1024 KB
- OS X (64-bit): 1024 KB
- Oracle Solaris/i386 (32-bit): 320 KB
- Oracle Solaris/x64 (64-bit): 1024 KB
-XX:+PrintGCDetails
该参数用于打印每一次垃圾回收的信息,默认情况下该功能是关闭的。
-XX:SurvivorRatio=ratio
该参数用于设置Eden区与Survivor区之间的比例,默认值为8。格式为:
-XX:SurvivorRatio=4
-XX:+HeapDumpOnOutOfMemoryError
该参数用于当抛出java.lang.OutOfMemoryError异常时,通过heap profiler (HPROF)将堆转储为dump文件以便用于后续的内存分析。该功能默认是禁用的。可通过-XX:HeapDumpPath设置dump文件的存储路径与名称。
-XX:HeapDumpPath=path
当设置了-XX:+HeapDumpOnOutOfMemoryError时,设置用于写入heap profiler (HPROF)提供的堆转储的路径和文件名。 默认情况下,该文件在当前工作目录中创建,并命名为java_pid[pid编号].hprof,其中pid是导致错误的进程的标识符。格式为:
-XX:HeapDumpPath=./java_pid%p.hprof%p 表示当前进程标识符-XX:HeapDumpPath=/var/log/java/java_heapdump.hprof
-XX:ThreadStackSize
该参数用于设置栈的大小。允许通过k(或K)、m(或M)、g(或G)设置大小,如:
-XX:ThreadStackSize=1m-XX:ThreadStackSize=1024k-XX:ThreadStackSize=1048576