文章目录
JVM 的参数类型
标配参数
- -version
- -help
X 参数(了解)
- -Xint:解释执行
- -Xcomp:第一次使用就编译成本地代码
- -Xmixed:混合模式
XX 参数
- Boolean 类型:-XX:+或者- 属性值(+表示开启,-表示关闭)
- -XX:+PrintGCDetails:打印GC收集细节
- -XX:-PrintGCDetails:不打印
- -XX:+UseSerialGC:使用串行收集器
- -XX:-UseSerialGC:不使用
- KV 设置类型:-XX:key=value
- XX:MetaspaceSize=128m 元空间大小
- -XX:
MaxTenuringThreshold
=15 晋升老年代的年龄阈值
jinfo 命令
-
作用:查看当前运行程序的配置
-
查看某个参数的值:
jinfo -flag [参数] [进程号]
-
jinfo -flag PrintGCDetails [进程号]
:查看是否配置了 PrintGCDetails (是否打印GC收集细节) - 结果: -XX:-PrintGCDetails
- 可以看出默认是不打印 GC 收集细节
-
-
查看所有参数:
jinfo -flags [进程号]
IDEA如何配置JVM参数
查看 JVM 默认值
-
查看初始默认值:Java -XX:+PrintFlagsInitial
[Global flags] ccstrlist AOTLibrary = {product} {default} int ActiveProcessorCount = -1 {product} {default} uintx AdaptiveSizeDecrementScaleFactor = 4 {product} {default} uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product} {default} uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product} {default} uintx AdaptiveSizePolicyInitializingSteps = 20 {product} {default}
-
查看修改更新:Java -XX:+PrintFlagsFinal
-
= 与 := 的区别是,一个是默认,一个是人为改变或者 jvm 加载时改变的参数
-
Java -XX:+PrintFlagsFinal -XX:MetaspaceSize=512m helloworld:运行helloworld程序,同时修改元空间大小,同时查看修改更新值
-
打印命令行参数(可以看默认垃圾回收器):Java -XX:+PrintCommandLineFlags
-XX:InitialHeapSize=128789376 -XX:MaxHeapSize=2060630016 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC
JVM 常用的基本配置参数有哪些?
- -Xms
- 初始堆内存,默认本机内存的1/64
- 等价于 -XX:InitialHeapSize
- 如 -Xms1024m
- -Xmx
- 最大堆内存,默认1/4
- 等价于 -XX:MaxHeapSize