参数说明
- 标准的运行期参数
- -X扩展参数
- -XX扩展参数
-client/-server:选择client模式下的运行模式
如果内存比较大,对性能要求苛刻的场合,建议运行在server模式下,虚拟机通过使用很大的内存来换取更高的性能。
如果内存比较小,对性能要求不高的场合,建议运行client模式下,使用有限的内存来正常运行。
如:java -client -classpath classes MyClass
-hotspot:-hotspot和-client是相同的含义词
-verbose:class 虚拟机运行期间,将class的加载情况打印出来。
-verbose:gc GC的输出解读,只有完全垃圾回收(FULL GC)才有分析价值
-version 打印当前JDK版本
如:java-version
java -X 扩展运行参数
-Xloggc:<file> 将GC信息打印到指定的文件中,与-verbose:gc类似,如果两个都存在,则以-Xloggc:<file>为准。
-Xms<Size> 指明堆内存的初始大小。该值必须是1024的倍数,并且大于1M 可以通过k或者M后缀表示是以KB字节为单位或
MB为单位。
-Xmx<Size> 指明最大的堆内存大小。
-Xss<size> 设置线程堆栈的大小。如 java -Xss512K
-Xprof 打开CPU剖析功能,由于对性能的巨大影响,不建议在生成环境使用。
关于JIT的介绍
1、java 进程总内存:
Perm区:加载class字节码的内存大小,参数:-XX:MaxPermSize。
java堆内存:参数-Xms、-Xmx设置。
本地内存:是一些本地方法,如JNI等。内存是除去Perm区和java堆内存剩下的内存大小,如果内存不足也会出现OOM。