内存溢出问题处理
最近出现了一个一个问题,接口同步数据的时候出现了内存暴涨的现象;
如图:使用VisualVM看了一下内存使用
环境信息:
JDK1.5
发现内存会突然暴涨,这个现象很奇怪,讲道理我的代码每次处理1000条数据,不可能会出现这种问题啊;
下一步我把内存dump下来:debug的时候添加vm参数
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\dump\
安装一个eclipse后,再安装一个插件MemoryAnalyzer,地址是http://download.eclipse.org/mat/1.12.0/update-site/
如图所示,内存使用占用80+的是一个ArrayList对象;然后进去看里面的内容;发现不是我写的接口;这下可以甩锅了;
不过还是得看到底为什么会出现这种情况;
配置远程访问:
-Dcom.sun.management.jmxremote.port=8999 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false