目标:分析应用哪个类创建的对象实例数最多。
首先登录应用所在服务器,采用jps命令查询应用的进程id:
查到java进程id为13830,然后采用jmap命令dump出进程当前内存的情况:
该命令把进程的内存对象占用情况dump到heap文件中,接下来通过jhat命令来分析该heap文件。
jhat命令会在7000端口启动一个服务,通过网页可以访问各个对象的内存占用情况:
在该默认界面的最下面找到如下栏目:
点击Show instance counts for all classes,进入如下界面:
该界面显示了所有class的实例个数,由图可知,AtomicLong这个类的实例数量最多,点击该实例,进入如下界面:
在该实例的界面找到上图箭头所示链接,查看该类的引用关系统计,如下:
在Referrers by Type列表中找到最多的引用该类的类: