浅谈eclipse memory analyzer的应用

1. 背景

对于一个应用服务,在持续运行几个月的情况下,处理了大量的请求,如果代码存在问题,那么服务器java应用内存溢出OOM的现象。此类情况不会在平时的测试中发现,是比较隐匿的。因此,在出现内存溢出之后,如何分析显得至关重要,eclipse memory analyzer,

2. 解决方法

问题:服务器java应用内存溢出。

文件:java_pid990.hprof

大小:1.88G
hprof 文件 是 Java 的 内存快照文件(Heap Profile 的缩写),格式为

java_pid*.hprof

用于分析 OOM: OutOfMemoryError(堆)内存不足错误

是 JVM 设置 -XX:+HeapDumpOnOutOfMemoryError 参数时打印的内容

可以用JDK自带Java Visual VM工具查看

也可以本文所介绍的Memory Analyzer工具查看
1、下载工具Memory Analyzer

https://projects.eclipse.org/projects/tools.mat/downloads
2、打开hprof文件
3、选择分析动作

勾第一个,单击确认后会自动出来Leak Suspects(问题原因猜疑结果),这里较Java Visual VM工具更加便捷。

Leak Suspects 能基本定出问题相关的类及方法

位置:Overview-->Reports-->Leak Suspects

点当前Leak Suspects页面下面的Thread Detail, Thead Stack中有更精准的方法:

另外,还可以看Top Consumers,Overview-->Actions-->Top Consumers

另外,还可以看Biggest Objects,点第一行-->Java Basics-->Thread Overview and Stacks

参考:

https://blog.csdn.net/jjk_02027/article/details/135024648

https://blog.csdn.net/qq_35485206/article/details/144623337

https://www.cnblogs.com/letcafe/p/mat.html

https://blog.51cto.com/xcbeyond/6169966

https://cloud.tencent.com/developer/article/2109322

相关推荐
咩咩啃树皮8 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
鱟鲥鳚8 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
大模型码小白10 小时前
【Python零基础教程】继承、多态与魔法函数:面向对象编程三大核心特性详解
java·大数据·开发语言·人工智能·python·ai编程
腾渊信息科技公司10 小时前
Spring Boot对接MES实战:视觉检测数据自动同步方案
java·人工智能·spring boot·后端·计算机视觉·ai·软件需求
爱笑的源码基地11 小时前
高并发 Redis 缓存门诊HIS系统源码,含财务统计药房进销存
java·程序·门诊系统·诊所系统·云诊所源码
wuqingshun31415911 小时前
TCP超时重传机制是为了解决什么问题?
java
莫逸风14 小时前
【AgentScope 2.0】 0. 学习指南
java·llm·agent·agentscope
z1234567898614 小时前
2026最新两款AI编程工具深度对比实测
java·数据库·ai编程
yaoxin52112315 小时前
470. Java 反射 - Member 接口与 AccessFlag
java·开发语言·python
做个文艺程序员15 小时前
Linux第24篇:Java应用监控体系搭建:Prometheus+Grafana可视化运维
java·grafana·prometheus