1.检查代码级别的堆移除
在eclipse启动项目的时候,run configuration: VM arguments:输入
-XX:+heapDumpOnOutOfMemoryError -Xms20m -Xmx20m
2.一旦内存溢出就会在代码所在的文件下生成一个堆快照。(java_pidxxx.hprof)
3.从网上下载eclipse memory analyzer。导入hprof文件。
可以看到摘要信息,Problem Suspect。
点击dominator_tree。
shallow heap 表示对象本身所占用的内存大小。不包含他的引用对象。
retained heap 表示对象本身所占用的内存大小+包含他的直接或间接引用对象大小。
查看占用内存最大的对象,就可以找到内存溢出的原因。
在eclipse启动项目的时候,run configuration: VM arguments:输入
-XX:+heapDumpOnOutOfMemoryError -Xms20m -Xmx20m
2.一旦内存溢出就会在代码所在的文件下生成一个堆快照。(java_pidxxx.hprof)
3.从网上下载eclipse memory analyzer。导入hprof文件。
可以看到摘要信息,Problem Suspect。
点击dominator_tree。
shallow heap 表示对象本身所占用的内存大小。不包含他的引用对象。
retained heap 表示对象本身所占用的内存大小+包含他的直接或间接引用对象大小。
查看占用内存最大的对象,就可以找到内存溢出的原因。