1、使用专门工具,对dump出来的堆快照进行分析
2、分清楚是出现内存泄漏 , 还是内存溢出,确认导致内存异常的OOM对象
3、如果是内存泄漏:通过工具查看泄漏对象到GC Roots的引用,并且分析引用路径,GC Roots的关联性,导致的垃圾回收器不能回收,
根据泄漏对象信息和引用GC Roots 链信息,确定创建对象的位置,找出产生泄漏的代码位置
4、如果不是内存泄漏,对象确实有必要存在,那么检查java虚拟机堆栈信息,确定是否可以上调参数。再从代码上检查
是否存在某些对象生命周期过长、 持有状态时间过长、 存储结构设计不合理等情况, 尽量减少程序运
行期的内存消耗
解决内存区异常常规方法(学习笔记)
最新推荐文章于 2024-02-01 21:48:07 发布