在一个项目中,突然出现了OOM故障,那么该如何排除,研究为什么出错?
- 能够看到代码第几行错:内存快照分析工具,MAT,JProfiler
- Debug,一行行分析代码
MAT,JProfiler作用:
- 分析Dump内存文件,快速定位内存泄露
- 获得堆中的数据
- 获得大的对象
JVM参数:
- -Xms:设置初始化内存分配大小 1/64
- -Xmx:设置最大分配内存,默认1/4
- -XX:+PrintGCDetails,打印GC垃圾回收信息
- -XX:+HeapDumpOnOutOfMemoryError,打印OOM Dump