XX参数可以分为如下2类:
1.布尔类型
2.KV设置值的类型
其中布尔类型, -XX: +或者- 某个属性值
+ 代表开启这个属性
- 代表关闭这个属性
如何查看一个正在运行中的java程序, 它的某个jvm参数是否开启, 具体值是多少?
jps: 可以查看当前正在运行的java进程. 类似于Linux的(ps命令查看后台进程)
jinfo: 查看运行线程的信息.
代码示例
public class MyHelloGc {
public static void main(String[] args) throws InterruptedException {
System.out.println("HELLO GC");
Thread.sleep(Integer.MAX_VALUE);
}
}
上面的程序, 运行后会出现阻塞. 在idea 的terminal中, 输入jps -l
即可查看当前代码的进程. 末尾的-l
的作用是可以输出完整的包名, 便于找到当前运行的类.
jinfo 的使用. 以查看是否开启了GC回收详细详细参数为例.
输入的命令如下, 其中jinfo
为查看详细信息的命令.
-flag 为查询某个参数是否开启.
PrintGCDetails 为开启GC打印细节.
28924 为对应的进程号jinfo -flag PrintGCDetails 28924
修改代码运行的配置, 在VM options中加上如下的参数.-XX:+PrintGCDetails
再次运行代码, 重复上面的操作,查看PrintGCDetails 属性.
可以看到PrintGCDetails 的前面是一个加号, 代表已经开启了该属性.
因此, 通过jps 加jinfo就可以查看某个java进程的jvm属性的值.
可以使用同样的方法, 来查看是否使用串行的垃圾回收器.jinfo -flag UseSerialGC 18372
如图所示, 未开启串行的垃圾回收器
来源:CSDN
作者:java持续实践
链接:https://blog.csdn.net/qq_33229669/article/details/103933809