记一次内存溢出处理
有一个我们公司整合第三方的系统(主要是数据同步用的),每当系统操作了一段时间后就会报内存溢出!!!
文章图片
oom 检查了一下我们自己的代码,一直没发现问题,(一开始还以为是因为查询记录过大或者包含大字段的原因,一下子保存到内存中过大导致的)于是乎就想起了一些JVM监控工具,这里安利一波yourkit!!!
通过监控资源和调用栈,终于发现了是因为prepareStatement没有正确关闭造成的!!!
文章图片
yourkit界面
文章图片
yourkit界面
文章图片
异常日志 最终发现代码里的一个隐藏坑!
文章图片
代码大致是这样的 【记一次内存溢出处理】for循环里的ps并不是每一个都被关闭了!只有最后一个引用的对象才被关闭!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- EffectiveObjective-C2.0|EffectiveObjective-C2.0 笔记 - 第二部分
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- 20170612时间和注意力开销记录
- 2018年11月19日|2018年11月19日 星期一 亲子日记第144篇
- 叙述作文
- 2019年12月24日
- 【故障公告】周五下午的一次突发故障
- 人生感悟记#环境仪器宋庆国成长记#072
- 2019.4.18感恩日记