-
jps查看jvm进程
-
查看内存使用
jstat -gcutil 1000 -
在内存占用最高的时候dump内存
jmap -dump:format=b,file=dump.hprof -
使用mat分析工具分析内存(jdk1.8建议使用1.11.0版本)
mat工具注意开启key unreachable objects
-
打开dump文件
-
分析工具可能内存泄漏的问题
点击“detail”
点击如下图图标查看出问题的class有哪些, 图中可以看出,疑似问题出在字符串,字符串过大,一个字符串大概10m左右
-
当然,也可以使用大盘查看内存占用情况
下图可见内存占用最多的对象
-
查看对象关联引用
如下图可见字符数组中存储的内容每个有10m
-
分析字符数组占内存原因
jinfo -flags 查看jvm全部参数
jinfo -flag PretenureSizeThreshold 查看最大对象直接进入老年代的阈值
默认值是0,意思是不管多大都是先在eden中分配内存
【jvm】内存占用偏高分析
于 2024-02-26 20:09:54 首次发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)