JVM的XX参数之布尔类型

自作多情 提交于 2020-01-11 13:13:50

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
如图所示, 未开启串行的垃圾回收器

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!