Java程序内存分析:使用mat工具分析内存占用(1)(2)
分享于 点击 46766 次 点评:244
这儿有个工具可以根据自己的需求分组查找,默认根据class分组,类似我们sql里的group by了~~
这里可以看到上面3个选项,分别生成overview、leak suspects、top components数据,但是这儿生成的不是图表,如果要看图表在Overview)中的Action标签里点击查看。
这个是Overview中的 Heap Dump Overview视图,从工具栏中点开,这是一个全局的内存占用信息
Used heap dump | 79.7 MB |
Number of objects | 1,535,626 |
Number of classes | 8,459 |
Number of class loaders | 74 |
Number of GC roots | 2,722 |
Format | hprof |
JVM version | |
Time | 格林尼治标准时间+0800上午9时20分37秒 |
Date | 2014-7-2 |
Identifier size | 32-bit |
File path | E:\jmap\map.bin |
File length | 108,102,005 |
|
然后可以点开SystemProperties和Thread Overview进行查看,我这里就不贴了内容比较多。
Dominator Tree
我们可以看到ibatis占了较多内存
Top consumers
这张图展示的是占用内存比较多的对象的分布,下面是具体的一些类和占用。
按等级分布的类使用情况,其实也就是按使用次数查看,java.lang.Class被排在第一
还有一张图是我们比较关心的,那就是按包名看占用,根据包我们知道哪些公共用的到jar或自己的包占用
这样就可以看到包和包中哪些类的占用比较高。
用户点评