洞察探讨小游戏SDK接入的最佳实践以及对企业跨平台开发的优势
566
2022-10-28
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~