美文网首页
JVM 内存分析

JVM 内存分析

作者: 星冉子 | 来源:发表于2019-09-29 20:26 被阅读0次

导出内存dump

查看某个进程的内存状态:jmap -heap <pid>;

查看某个进程当前对象的占用情况,并输出到文件:jmap -histo <pid> > c://qq.txt;

导出某个进程的dump文件:jmap -dump:file=c://qq.bin <pid>,是一个二进制文件(后缀为bin/hprof ),保存了某一时刻JVM堆中对象使用情况。

导出某个进程的dump文件(只导出存活对象):jmap -dump:live,file=c://qq.bin  <pid>

通常在写Heap Dump文件前会触发一次FullGC,所以Heap Dump文件中保存的是FullGC后留下的对象信息。

使用jhat分析

 jhat是JDK自带的命令,用来分析java堆,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言。

通过命令将dump文件内容以web的方式呈现,访问http://ip-server:7000查看:jhat -port 7000 mem.dat

jhat工具界面

使用ha分析

ha.jar是IBM提供的分析内存的工具,可以帮助我们分析dump文件。

工具界面

使用MAT分析

MAT(Memory Analyzer Tool)工具是eclipse的一个插件,使用起来非常方便,尤其是在分析 大内存的dump文件时,可以非常直观的看到各个对象在堆空间中所占用的内存大小、类实例数量、对象引用关系、利用OQL对象查询,以及可以很方便的找出对象GC Roots的相关信息,当然最吸引人的还是能够快速为开发人员生成内存泄露报表,方便定位问题和分析问题。

使用参考

相关文章

网友评论

      本文标题:JVM 内存分析

      本文链接:https://www.haomeiwen.com/subject/hjmmyctx.html