1. JVM的运行参数
1.1 三种参数类型
标准参数
help
-version
-X参数 (非标准参数)
-Xint
-Xcomp
-XX参数(使用率比较高, 常用语jvm调优)
-XX:newSize
-XX:+UseSeriaIGC
1.2 标准参数
-D 设置系统属性: java -Dstr=hello
String str = System.getProperty("str")
println(str)
输出结果: hello
JVM的两个启动模式: server和client
JVM在启动的时候回根据硬件和操作系统自动选择是使用Server还是Client类型的JVM
64位操作系统只有Server类型,没有Client
1.3 非标准参数
JVM的运行模式:
-Xint: 解释模式, 强制要求JVM执行所有的字节码(interpreted mode)
-Xcomp: 编译模式,JVM在第一次使用时会把所有字节码编译成本地代码(compiled mode)
-Xmixed:混合模式,将解释模式和编译模式混合使用, JVM默认的模式, 也是推荐的模式(mixed mode)
1.4 -XX 参数
-XX参数也是非标准参数, 主要用于JVM的调优和debug操作
两种使用方式:
boolean类型
格式: -XX:[+-] 表示启用或者禁用name指令
-XX:+DisableExplicitGC表示禁用手动调用gc操作, System.gc()无效
非boolean类型
格式: -XX= 表示name的属性值为value
-XX:NewRatie=1 表示新生代和老年代的比值
1.5 -Xms, -Xmx
-Xms和-Xmx分别是设置jvm的堆内存的初始大小和最大大小
-Xms512m相当于: -XX:InitialHeapSize=512m
-Xms2048m相当于:-XX:MaxHeapSize=2048m
JVM启动时会自动设置Heap size的值, -Xms初始空间是物理内存的1/64, -Xmx最大值时物理空间的1/4。
进行JVM优化时, 可将-Xms和-Xmx设置值相同, 最大值不超过物理内存的80%
1.6 查看jvm运行参数:
运行java命令时打印参数: -XX:+PrintFlagsFinal
参数列表中: = 表示默认值, :=表示值被修改过
1.7 查看正在运行的进程的jvm信息
jps -l查看当前系统中所有运行的java项目的进程id及详细包信息
jinfo -flags 29200 查看进程id为29200进程的所有jvm参数信息
jinfo -flag MaxheapSize 29200 查看pid下的具体某一jvm信息
imag