一、OOM发生位置
- 发生堆
- 栈
- 元数据区
二、OOM问题排查
- 看代发分析(代码追踪)
- 分析快照文件
三、分析快照文件的思路或方法论(堆溢出):
一、内存占用过大的对象是什么?
导入快照文件
--MAT-histogram 来进行查询,一般是按照占用的内存倒序进行排序的。
二、这个对象被谁引用
--MAT 的dominnator tree ,用来分析对象的调用链。
三、定位到具体的代码
--MAT的thread_overview,线程简介图,这个里面有方法的调用链信息和堆栈信息。
查找自己写的代码的方法
根据链路查找代码
四、总结:
查询订单信息没有分页查询,导致堆溢出 o(╥﹏╥)o