前面几章,我们讲了Java虚拟机、虚拟机的内存结构、认识对象(创建、内存分配、访问定位)、对象的回收。
前面的准备都是理论基础,出现了问题,也能从原理上来剖析问题是如何出现的,本章开始,将学习借助工具如何解决问题,让我们的虚拟机的性能达到最优。
工具介绍:
Jps(JVM Process Status Tool):
作用:查看当前用户下的java进程信息
Jstat(JVM statistics monitoring tool):
作用:查看 类装载、内存、垃圾收集、jit编译信息
Jinfo(JVM Configuration Info):
作用:实时查看和调整虚拟机各项参数
Jmap(Java Memory Map):
作用:可以获得运行中的jvm的堆的快照,从而可以离线分析堆,以检查内存泄漏,检查一些严重影响性能的大对象的创建,检查系统中什么对象最多,各种对象所占内存的大小等等
Jhat(JVM Analysis Tool):
作用:与jmap搭配使用,用来分析jmap生成的dump,jhat内置了一个微型的HTTP/HTML服务器,生成dump的分析结果后,可以在浏览器中查看
Jstack:
作用:jstack是java虚拟机自带的一种堆栈跟踪工具
JConsole:
作用:可以分析内存、线程、CPU情况、类情况、GC信息等等
推荐一个虚拟机内存监控工具:VisualVM,一个比JConsole更全面的内存分析工具,感兴趣的可以去研究研究
下一篇:类加载器