JVM 包含多种不同类型的参数选项
-D 用来设置系统属性,属于标准选项
-X 设置非标准选项,支持的选项范围跟具体的 JVM 实现有关
-XX 设置高级选项,允许开发者调整 JVM 的行为、性能、输出调试信息,支持的选项范围也跟具体的 JVM 实现有关
布尔类型的高级选项是起到功能的开关作用,不带参数。使用 + 启用功能,使用 - 禁用功能;对于带参数的高级选项,需要指定参数值
使用 java -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions -XX:+PrintFlagsFinal -version 命令可以查看 JVM 所有的选项
-XX:+PrintFlagsInitial
:打印出各个 JVM 参数的默认值。它的输出内容和 -XX:PrintFlagsFinal
类似。
在 OpenJDK 17 中,这两个选项输出行数是一样的,都是 559 行:
$ java -XX:+PrintFlagsInitial -version | wc -l 559 $ java -XX:+PrintFlagsFinal -version | wc -l openjdk version "17.0.5" 2022-10-18 OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu120.04) OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu120.04, mixed mode, sharing) 559
-XX:+PrintCommandLineFlags
-XX:+PrintCommandLineFlags
也是一个非常有用的参数,它可以打印出那些我们通过命令行指定或者 JVM 自动在命令行上设置的参数。
java -XX:+PrintCommandLineFlags -version
-XX:ConcGCThreads=2 -XX:G1ConcRefinementThreads=8 -XX:GCDrainStackTargetSize=64 -XX:InitialHeapSize=62422080 -XX:MarkStackSize=4194304 -XX:MaxHeapSize=998753280 -XX:MinHeapSize=6815736 -XX:+PrintCommandLineFlags -XX:ReservedCodeCacheSize=251658240 -XX:+SegmentedCodeCache -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseG1GC
openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment (build 17.0.5+8-Ubuntu-2ubuntu120.04)
OpenJDK 64-Bit Server VM (build 17.0.5+8-Ubuntu-2ubuntu120.04, mixed mode, sharing)
【实战小记】java启动参数JAVA_OPT不生效问题
有个项目,启动脚本里面用这个方式启动:
java -jar $MODULER.jar $JAVA_OPT
现象:能正常起来,但是占用内存一直比较高,比较稳定,然后不断调优java_opt的内存参数,但是没效果
解决:
修改启动顺序如下,内存降下来了
java $JAVA_OPT -jar $MODULER.jar
原因:
java启动参数顺序还是有讲究
1) java -jar $MODULER.jar $JAVA_OPT
因为$JAVA_OPT是没传递给jvm,只是当做jar包的可用参数而存在。所以怎么调优参数值无效果
2)java $JAVA_OPT -jar $MODULER.jar
这个是正确的, $JAVA_OPT传递给jvm,在启动的时候生效,内存也降下来了。
标签:OPT,常用,java,jar,XX,JVM,JAVA From: https://www.cnblogs.com/fieldtianye/p/18043505