JVM 基础教程第12讲:JVM参数之查看JVM参数

网友投稿 870 2022-10-28

JVM 基础教程第12讲:JVM参数之查看JVM参数

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:+UseSerialGCHello, 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系列目录

JVM系列开篇:为什么要学虚拟机?JVM系列第1讲:Java 语言的前世今生JVM系列第2讲:Java 虚拟机的历史JVM系列第3讲:到底什么是虚拟机?JVM系列第4讲:从源代码到机器码,发生了什么?JVM系列第5讲:字节码文件结构JVM系列第6讲:Java 虚拟机内存结构JVM系列第7讲:JVM 类加载机制JVM系列第8讲:JVM 垃圾回收机制JVM系列第9讲:JVM垃圾回收器JVM系列第10讲:垃圾回收的几种类型

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Quarkus的Spring扩展快速改造Spring项目
下一篇:基于PhalApi 2.4.2 和iView-Admin 2.3.0 的后台开源框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~