基于jdk8的参数
标准:- 开头,所有的HotSpot都支持
非标准:-X 开头,特定版本HotSpot支持特定命令,每个JVM实现不同
不稳定:-XX 开头,下个版本可能取消
标准命令,比如
java -version
非标准,用命令 java -X 查看
java -X
-Xmixed 混合模式执行 (默认)
-Xint 仅解释模式执行
-Xbootclasspath:<用 : 分隔的目录和 zip/jar 文件>
设置搜索路径以引导类和资源
-Xbootclasspath/a:<用 : 分隔的目录和 zip/jar 文件>
附加在引导类路径末尾
-Xbootclasspath/p:<用 : 分隔的目录和 zip/jar 文件>
置于引导类路径之前
-Xdiag 显示附加诊断消息
-Xnoclassgc 禁用类垃圾收集
-Xincgc 启用增量垃圾收集
-Xloggc:<file> 将 GC 状态记录在文件中 (带时间戳)
-Xbatch 禁用后台编译
-Xms<size> 设置初始 Java 堆大小
-Xmx<size> 设置最大 Java 堆大小
-Xss<size> 设置 Java 线程堆栈大小
-Xprof 输出 cpu 配置文件数据
-Xfuture 启用最严格的检查, 预期将来的默认值
-Xrs 减少 Java/VM 对操作系统信号的使用 (请参阅文档)
-Xcheck:jni 对 JNI 函数执行其他检查
-Xshare:off 不尝试使用共享类数据
-Xshare:auto 在可能的情况下使用共享类数据 (默认)
-Xshare:on 要求使用共享类数据, 否则将失败。
-XshowSettings 显示所有设置并继续
-XshowSettings:all
显示所有设置并继续
-XshowSettings:vm 显示所有与 vm 相关的设置并继续
-XshowSettings:properties
显示所有属性设置并继续
-XshowSettings:locale
显示所有与区域设置相关的设置并继续
-X 选项是非标准选项, 如有更改, 恕不另行通知。
以下选项为 Mac OS X 特定的选项:
-XstartOnFirstThread
在第一个 (AppKit) 线程上运行 main() 方法
-Xdock:name=<应用程序名称>"
覆盖停靠栏中显示的默认应用程序名称
-Xdock:icon=<图标文件的路径>
覆盖停靠栏中显示的默认图标
不稳定:-XX 开头,有好几百个参数,没有找到完整列表
常用的参数:
-XX:+PrintFlagsFinal,设置值,最终生效值
java -XX:+PrintFlagsFinal
[Global flags]
intx ActiveProcessorCount = -1 {product}
uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
uintx AdaptiveSizePausePolicy = 0 {product}
uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product}
看有没有用 G1 作为垃圾收集器,false表示没有
java -XX:+PrintFlagsFinal | grep UseG1GC
bool UseG1GC = false {product}
看有没有用 Serial 作为垃圾收集器,false表示没有
java -XX:+PrintFlagsFinal | grep UseSerialGC
bool UseSerialGC = false {product}
在输入命令,UseParallelGC 表示使用Parallel Scavenge + Serial Old (PS MarkSweep)的收集器组合;UseParallelGC是JDK9之前虚拟机运行在server模式下的默认值;
java -XX:+PrintFlagsFinal | grep UseParallelGC
bool UseParallelGC := true {product}
把垃圾收集器改为 G1
java -XX:+UseG1GC
-XX:+PrintFlagsInitial,默认值
-XX:+PrintCommandLineFlags,命令行参数
java -XX:+PrintCommandLineFlags -version
-XX:InitialHeapSize=268435456 -XX:MaxHeapSize=4294967296 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)