记一次java应用内存占用分析

目标:分析应用哪个类创建的对象实例数最多。

首先登录应用所在服务器,采用jps命令查询应用的进程id:


8.png

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

9.png

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

10.png

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

1.png

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

2.png

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

3.png

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

4.png

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

5.png

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

6.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,705评论 25 709
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 7,145评论 0 62
  • 微风拂过带走了往昔的岁月,带走你魅力的容颜,不知怎的,当月亮挤掉太阳的时候,耳边总是会响起你的声音,时而清晰,时而...
    SKY二页书阅读 463评论 0 1
  • 我喜欢你的时候,很嫉妒你喜欢的人比我好比我优秀,甚至为了让你看见我的存在,我把自己伪装的零瑕疵,在你的眼里我微不足...
    zm山鲁佐德阅读 264评论 0 1
  • 谨以此文,献给懒癌又爱找借口的我和你。 今天看到一句话:“学习可以没有仪式感”,简直不能支持更多! 之前在微博看过...
    树妈包包蔡阅读 1,839评论 1 3