微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JVM系列第12讲:JVM参数之查看JVM参数

今天要说的是如何查看 JVM 中已经设置的参数,包括显示参数和隐式参数。

打印显式参数 -XX:+PrintVMOptions

该参数表示程序运行时,打印虚拟机接受到的命令行显式参数。我们用下面的命令运行程序:

java  -XX:+UseSerialGC -XX:+PrintVMOptions com.chenshuyi.ClassLoadDemo

输出结果:

VM option '+UseSerialGC'
VM option '+PrintVMOptions'
Hello,I'm chenshuyi

可以看到我们设置了+UseSerialGC+PrintVMOptions两个参数,最后运行时也将这两个参数打印出来了。

打印显式隐式参数 -XX:+PrintCommandLineFlags

该参数打印传递给虚拟机的显式和隐式参数。我们用下面的命令运行程序:

java  -XX:+UseSerialGC -XX:+PrintCommandLineFlags com.chenshuyi.ClassLoadDemo

输出结果:

-XX:InitialHeapSize=134217728 -XX:MaxHeapSize=2147483648 -XX:+PrintCommandLineFlags -XX:+UseCompressedClasspointers -XX:+UseCompressedOops -XX:+UseSerialGC
Hello,I'm chenshuyi

可以看到程序不仅输出了我们显式设置的参数,还将虚拟机认的参数打印了出来,包括初始堆大小(134217728),最大堆大小(2147483648)等。

打印所有系统参数 -XX:+PrintFlagsFinal

该参数会打印所有的系统参数的值。我们用下面的命令运行程序:

java  -XX:+UseSerialGC -XX:+PrintFlagsFinal com.chenshuyi.ClassLoadDemo  > jvm_flag_final.txt

之后打开 jvm_flag_final.txt 文件,可以看到有 800 多行,这是因为程序将虚拟机的所有参数都打印了出来。下面列几个我们常用的参数看看就可以:

...
uintx InitialHeapSize := 134217728 {product}
...
uintx MaxMetaspaceSize = 18446744073709547520 {product}
...
uintx MetaspaceSize = 21807104 {pd product}

从上面我们列出的部分参数可以看到,上面三个参数分别是设置初始堆大小、元空间最大大小、初始元空间大小。

最后,让我们来总结一下,加强记忆。

  • -XX:+PrintVMOptions 程序运行时,打印虚拟机接受到的命令行显式参数。
  • -XX:+PrintCommandLineFlags 打印传递给虚拟机的显式和隐式参数。
  • -XX:+PrintFlagsFinal 打印所有的系统参数的值

JVM系列目录

如果只是看,其实无法真正学会知识的。为了帮助大家更好地学习,我建了一个虚拟机群,专门讨论学习 Java 虚拟机方面的内容,每周针对我所发文章进行讨论答疑。如果你有兴趣,关注「Java技术精选」公众号,通过右下角菜单「入群交流」加我好友,小助手会拉你入群。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐