当前位置: 首页 > news >正文

jvm mat分析dump文件

jvm调优中,经常使用dump来分析是否存在大对象导致频繁full gc,以下为使用步骤:

一、获得服务进程

ps -ef | grep list-app | grep -v grep

 二、生成dump文件

jmap -dump:format=b,file=xxx.dump pid

jmap -dump:file=test.hprof,format=b 3307

file自己命名,

三、下载mat工具

地址:Eclipse Memory Analyzer Open Source Project | The Eclipse Foundation

注意,12及以上版本需要安装jdk11以上

四、导入dump文件

五、导入后得到如下界面

 

六、定位大对象(方法一)
点击上图中Histogram,可显示出每个类产生的实例数量,以及所占用的内存大小;
Shallow Heap 和 Retained Heap分别表示对象自身不包含引用的大小和对象自身并包含引用的大小。默认的大小单位是 Bytes,可以在 Window - Preferences 菜单中设置单位,图中设置的是KB。

根据Shallow Heap 和 Retained Heap找出占用最大的对象(下图)

红框内就是我的包路径,这时已经大概知道是什么对象占用了,去项目中检查大概率能定位,我遇到的是一次性查出全部的数据,太多导致。


七、定位大对象(方法二)
点击第五步图中 Leak Suspects 后,MAT会自动分析生成一份报告,通过报告,也能判断出和上一步一样的结果

最后,找到代码位置了,其他就是要分析具体是什么原因导致产生大对象。针对问题进行代码、JVM、业务需求优化。
 

http://www.lryc.cn/news/27362.html

相关文章:

  • python16行代码获取原神全角色+全语音
  • 链接投票二维码制作制作投票链接视频选举投票制作
  • HTTP 协议
  • 公司新招了个人,一副毛头小子的样儿,哪想到是新一代卷王····
  • TSDF学习记录
  • 【Linux】孤儿进程
  • ChatGPT解答:python大批量读写ini文件时,性能很低,有什么解决方法吗,给出具体的思路和实例
  • MySql主键id不推荐使用UUID
  • 密码算法(SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算)
  • 保险行业中【内容行政系统】模块功能的实现
  • C语言入门知识——(7)VS2022的C语言基础调试
  • 数据库可视化开发工具内容介绍
  • 坚如磐石:TiDB 基于时间点的恢复(PiTR)特性优化之路丨6.5 新特性解析
  • 【云原生】K8S中PV和PVC
  • 24小时稳定性爆肝测试!国内外5款远程控制软件大盘点
  • 【Java集合框架】篇三:List接口
  • 【算法经典题集】二分(持续更新~~~)
  • 【c++】2023杭州月薪个税计算(chatGPT帮忙加注释)
  • 【TypeScript】的上手学习指南!
  • 红黑树(Insert())
  • MOV指令使用
  • 解释一下RecyclerView的适配器内部方法
  • 集合框架及背后的数据结构
  • 【强化学习】强化学习数学基础:蒙特卡洛方法
  • BI分析工具软件有哪些
  • 2023爱分析·RPA软件市场厂商评估报告:容智信息
  • 设计模式之七大原则(二)——里氏替换原则、依赖倒转原则
  • 数据库日常实操优质文章分享(含Oracle、MySQL等) | 2023年2月刊
  • 事件循环机制(Event Loop)和宏任务(macro-tast)微任务(micro-tast),详细讲解!!!
  • mysql基础操作3