-Xmixed 混合模式执行。即解释模式和JIT混合执行(JIT请参考第7.3节)
举例 java -Xmixed -classpath classes;lib/mylib.jar MyClass
-Xint 解释模式执行。禁止将类中的方法编译成本地代码,所有的字节码以解析方式进行。在该模式下,Java HotSpot可适配编译器在性能方面的优势将无法体现。
举例 java -Xint -classpath classes;lib/mylib.jar MyClass
-Xbootclasspath:<directories and zip/jar fifiles separated by ;> 将路径,jar,zip库增加到启动class的搜索路径,以";"作为分隔符。这样做违反了Java 2 Runtime Environment binary
code license.
举例 java -Xbootclasspath:classes;lib/mylib.jar MyClass
-Xbootclasspath/a:<directories and zip/jar fifiles separated by ;> 将路径,jar,zip库
增加到缺省的bootclasspath,以";"作为分隔符。
举例 java -Xbootclasspath/a:classes;lib/mylib.jar MyClass
-Xbootclasspath/p:<directories and zip/jar fifiles separated by ;> 将路径,jar,zip库
增加到缺省的bootclasspath的前面,以";"作为分隔符。注意,应用程序使用该命令的目的是为
了覆盖rt.jar中的类,这样做违反了Java 2 Runtime Environment binary code license.
举例 java -Xbootclasspath/p:classes;lib/mylib.jar MyClass
-Xnoclassgc 不进行class的垃圾收集
举例 java -Xnoclassgc -classpath classes;lib/mylib.jar MyClass
-Xincgc 打开增量垃圾收集
增量垃圾收集开关在缺省情况下是关闭的。增量垃圾收集可以减少程序运行期偶发的长
时间垃圾收集。增量垃圾收集器将在一定的时间与程序并发执行,在这段垃圾收集的时间内,
对正在执行的程序有一定的性能影响。
举例 java -Xincgc -classpath classes;lib/mylib.jar MyClass
-Xloggc:<fifile> 将GC信息打印到指定的文件中。与-verbose:gc类似,-Xloggc:<fifile>将GC信息中直接打印到一个文件中。如果两个都提供了,那么以-Xloggc:<fifile>为准
举例 java -Xloggc:c:\mylog.txt -classpath classes;lib/mylib.jar MyClass
-Xbatch 关闭后台编译
正常情况下,JVM将以后台的方式编译class中的方法,一直按解析模式运行代码,直到后
台编译完成。-Xbatch标记关闭后台编译,所有方法的编译作为前台任务完成,直到编译完成。
举例 java -Xbatch -classpath classes;lib/mylib.jar MyClass
-Xms<size> 指明堆内存的初使大小。该值必须是1024的倍数,并且大于1MB. 可以通过k或
者M后缀表示是以KB字节为单位,m或者M表示以MB字节为单位。缺省值是2M,如:
-Xms6291456
-Xms6144k
-Xms6m
举例 java -Xms512M -classpath classes;lib/mylib.jar MyClass
-Xmx<size> 指明最大的堆内存大小,该值必须是1204字节的倍数,k或者K表示KB, m或
者M表示MB. 缺省值为64MB.
-Xmx83886080
-Xmx81920k
-Xmx80m
在Solaris 7和Solaris 8平台下面,该值的上限是4000M减去本地代码内存开销。在Solaris
2.6 和x86 平台下面, 该值的上限是2000m去本地代码内存开销。在Linux平台下面,该值的上
限是2000m去本地代码内存开销。
举例 java -Xmx512M -classpath classes;lib/mylib.jar MyClass
-Xss<size> 设置线程堆栈的大小。
举例 java -Xss512K -classpath classes;lib/mylib.jar MyClass
-Xprof 打开CPU剖析功能。
剖析正在运行的程序,发送剖析数据到标准输出。这个选项作为程序开发期的一个有效
工具,由于对性能的巨大影响因此不建议在生产环境下面使用。
-Xrunhprof[:help][:<suboption>=<value>,...]
打开CPU、堆、监视器(锁)的剖析。可以跟随一系列的"<suboption>=<value>"列表,元
素之间使用,作为分隔符。运行java -Xrunhprof:help 可以获取子选项的列表和缺省值。
举例 java -Xprof -classpath classes;lib/mylib.jar MyClass
-Xfuture 执行严格的类文件格式检查。考虑到后向兼容性,Java 2.x版本的JDK虚拟机的缺
省类文件格式检查相比1.1.x版本的JDK要松一些。-Xfuture选项打开,将执行更严格的类文件
格式检查,这样可以确保类文件与标准中定义的类文件格式更加顺从。鼓励开发者在新开发的
代码中打开该选项,因为将来版本的java应用程序起动器缺省将启动严格的类文件格式检查。
举例 java -Xfuture -classpath classes;lib/mylib.jar MyClass
-Xrs 减少由JVM使用的操作系统信号量。
为了确保Java应用程序的正确停止,JVM提供了shutdown钩子策略。In a previous release,
the Shutdown Hooks facility was added to allow orderly shutdown of a Java application. 目的是
为了确保系统退出之前,用户代码的善后代码可以得到执行(如关闭一个数据连接的)。SUN的
虚拟机提供了对某些信号量的处理。
如果使用了-Xrs命令行选项,有如下两个后果:
1. SIGQUIT 线程堆栈打印不可用,即无法使用kill -3打印线程堆栈.
2. 已有的shutdown钩子函数调用的用户代码当虚拟机停止的时候将不会被自动调用,如
当JVM将要停止的时候,手工调用System.exit()来确保原有的钩子函数被执行。
用法
举例 java -Xrs -classpath classes;lib/mylib.jar MyClass
-Xcheck:jni 对JNI函数执行附加的检查特别地,虚拟机在处理JNI请求之前,会对传给JNI调
用的参数进行校验,同时对运行期环境数据也进行校验。对于验证非法的数据,虚拟机将作为
一个致命错误而终止。但该选项打开后,性能会有一定的下降。
举例 java -Xcheck:jni -classpath classes;lib/mylib.jar MyClass
-Xshare:offff 关于使用共享类数据。
举例 java -Xshare:offff -classpath classes;lib/mylib.jar MyClass
-Xshare:auto 在可能的情况下,使用共享的类数据
举例 java -Xshare:offff -classpath classes;lib/mylib.jar MyClass
-Xshare:on 一定使用共享的类数据,否则失败
举例 java -Xshare:offff -classpath classes;lib/mylib.jar MyClass
摘自:《Java问题定位技术》张民卫