系统运行久了就会崩溃,有没有办法定位是什么地方内存泄漏导致的? 有什么案例可以参考一下嘛
1
xaoduer 2019-10-10 16:10:51 +08:00
内存泄露不是有 OOM 日志吗
|
2
arrow8899 2019-10-10 16:14:55 +08:00 2
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp
dump 出来后直接上 mat 分析 |
3
xionghongzhi 2019-10-10 16:22:21 +08:00
你可以在它出现问题的时候, jstack 查看下具体哪里有问题.
jstack -l pid > xx.dump 然后找一下里面有没有你写的代码... |
4
yidinghe 2019-10-10 16:23:35 +08:00
https://segmentfault.com/a/1190000020513539
看这篇文章,介绍内存分析工具的使用。如果想了解内存结构和垃圾回收,请从头看完该篇文章的整个系列。 |
6
aguesuka 2019-10-10 16:47:36 +08:00 via Android
jmap 可以看类的内存占用
|
7
luozic 2019-10-10 18:02:36 +08:00
现在有 GUI 的也有命令行的,刚开始玩推荐用 GUi 的定位,jprofiler 等等
|
8
zazalu 2019-10-10 18:24:04 +08:00 via Android
太大的系统 dump 要半天呢。
|
9
timepast 2019-10-10 21:06:14 +08:00 via iPhone
上面的方式应该能解决,我们前两天刚定位了相关问题
|
10
Raymon111111 2019-10-10 21:31:44 +08:00
最直接的方法是分析 dump 堆文件, 看看有什么不太符合预期类
|