当前位置: 代码迷 >> 综合 >> JVM参数分类
  详细解决方案

JVM参数分类

热度:59   发布时间:2024-02-04 21:06:22.0

基于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 UseG1GCbool UseG1GC                                   = false                               {product}

看有没有用 Serial 作为垃圾收集器,true 表示有

java -XX:+PrintFlagsFinal | grep UseSerialGCbool UseSerialGC                              = true                                     {product}

把垃圾收集器改为 G1

java -XX:+UseG1GC

-XX:+PrintFlagsInitial,默认值

-XX:+PrintCommandLineFlags,命令行参数

java -XX:+PrintCommandLineFlags
-XX:InitialHeapSize=30115712 -XX:MaxHeapSize=481851392 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseSerialGC 

 

 

  相关解决方案