1、场景

通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出.

对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策。

这时候怎么办呢?可以使用linux下的mat,既Memory Analyzer Tools

2、dump生成

dump可以是内存溢出时让其自动生成,或者手工直接导。配置jvm参数-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/biapp/m.hprof

手工直接导,PID为进程号

jmap -dump:live,format=b,file=m.hprof PID

3、准备工作,下载LINUX的MAT

在linux服务器执行命令 uname –m查看版本

下载对应的版本

下载后将包传到linux服务器上解压。

MemoryAnalyzer.ini 配置文件可以修改最大的内存,默认1G基本够用了。

4、在linux执行分析命令

执行命令

./ParseHeapDump.sh m.hprof  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components。

m.hprof就是jvm的dump文件,在mat目录下会生成3份.zip结尾的报告和一些m.相关的文件,将生成的m.hprof相关的文件都下载到windows本地磁盘。

如:

5、打开分析报告

1)使用浏览器

解压缩以.zip结尾的文件,解压后

使用浏览器打开index.html文件内容,查看分析报告

查看Class Histogram一项

发现其中一个类对象占用了7个G,这里的Heap单位都是Byte,自行换算。

Shallow Heap 既对象本身的大小

Retained Heap 对象自身加起直接或间接引用的大小

2)使用eclipse的mat工具

Eclipse需要按照mat工具,安装步骤可以百度,或者参考

如果直接打开dump文件还是会内存溢出,所以可以使用eclipse打开分析报告即可。

使用eclipse-File-Open File打开dump文件,如下:

会提示错误,点击OK忽略错误,然后选择第三项,重新打开之前的运行报告

点击Next,出现如下界面

选择其中的一份报告打开,如m_System_Overview.zip

得到相同的结果

java 内存快照怎么看_jvm内存快照dump文件太大,怎么分析相关推荐

  1. cad布局怎么用_CAD文件太大怎么办?只要用这三个方法,瞬间内存减少一大半

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.如果喜欢就关注订阅吧!也不要忘记点赞哦~亲,看的开心可以点个好看 . ...

  2. cad布局怎么用_搞笑段子:CAD文件太大怎么办?只要用这三个方法,瞬间内存减少一大半...

    阅读本文前,请您先点击上面的"蓝色字体",再点击"关注",这样您就可以继续免费收到文章了.如果喜欢就关注订阅吧!也不要忘记点赞哦~亲,看的开心可以点个好看 . ...

  3. cdr文件太大怎么转成小内存 CDR文件太大打不开怎么办

    使用cdr软件制作图形时,常常会将其制作成矢量图形.虽然矢量图形有着不失真.可任意放大等优点,但常会导致cdr文件过大.那么,cdr文件太大怎么转成小内存,CDR文件太大打不开怎么办?本文将会针对以上 ...

  4. DELPHI 内存流修改16进制文件, 文件太大时候OutofMemory的问题研究

    DELPHI 内存流修改16进制文件, 文件太大时候OutofMemory的问题研究 问题描述: 需要用内存流打开一个300M大小的文件, 替换文件中固定长度的16进制编码为另一条编码 原始思路 1. ...

  5. cad拉伸怎么用_CAD文件太大怎么办?只要用这三个方法,瞬间内存减少一大半

    不知道大家在制作CAD图纸的时候,会不会遇到这样的问题: 明明自己图纸的内容不多,但导出来的文件总是会很大,也很难打开,非常占用内存~而且在传输的时候也很不方便,今天就来跟大家聊聊如何轻松解决这个问题 ...

  6. java 生成dump_java dump文件怎么生成和分析-JMAP用法详解

    jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...

  7. java堆是gc管理_JVM内存管理及GC机制

    一.概述 JavaGC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和 ...

  8. Java内存模型 gc算法_JVM内存模型及GC回收算法

    该篇博客主要对JVM内存模型以及GC回收算法以自己的理解和认识做以记录. 内存模型 GC垃圾回收 1.内存模型 从上图可以看出,JVM分为 方法区,虚拟机栈,本地方法栈,堆,计数器 5个区域.其中最为 ...

  9. jmap 文件解析_jvm系列:dump文件深度分析

    JVM dump java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢 ...

最新文章

  1. 网络名词--“环路”
  2. css的repaint和reflow
  3. 数据中心在2017年的愿望清单
  4. php直接修改excel,php如何修改excel
  5. opengl 大作业_「陪玩时光」糕妈:说说年糕的小学生活,先从陪作业和家长群聊起...
  6. 【下载】推荐一款免费的人脸识别SDK
  7. 教你用Python提取Chrome浏览器保存的密码
  8. 如何上传file对象
  9. IM的扫码登录功能如何实现?一文搞懂主流的扫码登录技术原理
  10. apache域名跳转
  11. 数字信号处理实验(一)
  12. 考研政治——马克思主义唯物论之物质观
  13. wifi动不动就断开_笔记本Wifi上网经常间歇性断网的修复
  14. 【坐标系统】高斯克吕格平面直角坐标系(笔记)
  15. 使用windows bat实现自动FTP下载
  16. Spring @Scheduled 使用详解
  17. 输入框事件监听(三):blur与change的差异
  18. 讲座有感——科技论文写作要素
  19. 全新二开PHP自适应极简多引擎搜索单页网站源码
  20. vue 实战培训课程-张秋方-专题视频课程

热门文章

  1. AtCoder Regular Contest 059
  2. 建筑师 第一类斯特林数
  3. HDU - 4497 GCD and LCM 数论gcd
  4. Strange Birthday Party CodeForces - 1471C
  5. Strange Partition CodeForces - 1471A
  6. hdu 1576 A/B
  7. 学习三分 (概念 + 模板 + 例题:曲线)
  8. 洛谷P4463:calc(dp、拉格朗日插值)
  9. CF1039D-You Are Given a Tree【根号分治,贪心】
  10. P3901-数列找不同【模拟】