记一次java应用内存占用分析
2017-03-23 本文已影响0人
沧行
目标:分析应用哪个类创建的对象实例数最多。
首先登录应用所在服务器,采用jps命令查询应用的进程id:

查到java进程id为13830,然后采用jmap命令dump出进程当前内存的情况:

该命令把进程的内存对象占用情况dump到heap文件中,接下来通过jhat命令来分析该heap文件。

jhat命令会在7000端口启动一个服务,通过网页可以访问各个对象的内存占用情况:

在该默认界面的最下面找到如下栏目:

点击Show instance counts for all classes,进入如下界面:

该界面显示了所有class的实例个数,由图可知,AtomicLong这个类的实例数量最多,点击该实例,进入如下界面:

在该实例的界面找到上图箭头所示链接,查看该类的引用关系统计,如下:

在Referrers by Type列表中找到最多的引用该类的类:
