JVM基础教程第13讲:JVM参数之追踪类信息

网友投稿 566 2022-10-28

JVM基础教程第13讲:JVM参数之追踪类信息

JVM基础教程第13讲:JVM参数之追踪类信息

我们都知道 JVM 在启动的时候会去加载类信息,那么我们怎么得知他加载了哪些类,又卸载了哪些类呢?我们这一节就来介绍四个 JVM 参数,使用它们我们就可以清晰地知道 JVM 的类加载信息。

为了方便演示,我们使用下面的程序作为本次的演示程序。

/** * @author chenshuyi * @date 2018.09.30 */public class ClassLoadDemo { public static void main(String[] args) { String name = "chenshuyi"; System.out.println("Hello, I'm " + name); }}

跟踪类的加载和卸载 -verbose:class

我们使用下面的参数运行程序:

java -verbose:class com.chenshuyi.ClassLoadDemo > class_load_info.txt

之后我们打开 class_load_info.txt 文件。因为该文件太大,所以我们节选一部分:

...省略...[Loaded java.util.ArrayList from /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/rt.jar]...省略...[Loaded java.util.HashMap from /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/jre/lib/rt.jar]...省略... [Loaded com.chenshuyi.ClassLoadDemo from file:/Users/yurongchan/Yosemite/Code/practice/target/classes/]...省略...

从上面可以看到 JVM 分别加载了 ArrayList、HashMap 类,以及我们自己定义的 ClassLoadDemo 类。

跟踪类的加载 -XX:+TraceClassLoading

该参数与可以显示类的加载信息,输出的结果和 ​​-verbose:class​​ 一样,但比起它少了类的卸载信息。

跟踪类的卸载 -XX:+TraceClassUnloading

该参数与可以显示类的加载信息,输出的结果和 ​​-verbose:class​​ 一样,但比起它少了类的加载信息。

但实际上我们通过上面这个简单的例子,没有发现类的卸载信息,或许是例子太简单了,所以没有这个。

-XX:+PrintClassHistogram

该参数表示遇到 Ctrl-Break 后打印类实例的柱状信息,与 jmap -histo 功能相同。

了解了这些参数,能够让我们更好地了解哪些类已经被加载到 JVM 中,从而更好地排查问题。最后来个总结,加强记忆:

参数

含义

-verbose:class

跟踪类的加载和卸载

-XX:+TraceClassLoading

跟踪类的加载

-XX:+TraceClassUnloading

跟踪类的卸载

-XX:+PrintClassHistogram

显示类信息柱状图

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讲:垃圾回收的几种类型

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讲:垃圾回收的几种类型JVM基础系列第11讲:JVM参数之堆栈空间配置JVM基础系列第12讲:JVM参数之查看JVM参数JVM基础系列第13讲:JVM参数之追踪类信息JVM基础系列第14讲:JVM参数之GC日志配置JVM基础系列第15讲:JDK性能监控命令

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

上一篇:基于PhalApi 2.4.2 和iView-Admin 2.3.0 的后台开源框架
下一篇:一个无痛使用React与JSX的迷你React框架
相关文章

 发表评论

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