能够看到代码第几行出错:内存快照分析工具,MAT,Jprofiler(推荐)
Debug,一行行分析代码
MAT,Jprofiler作用:
安装插件后,一定要重启!
下载地址:http://www.xue51.com/soft/12717.html#xzdz
无脑下一步即可!
最好自定义路径~
命令代码讲解:
-Xms1m -Xmx8m -XX:+HeapDumpOnOutOfMemoryError
设置初始化内存分配大小
设置最大分配内存
,默认 -XX:+PrintGCDetails
: 打印GC垃圾回收信息-XX:+HeapDumpOnOutOfMemoryError
: OOM DUMPimport java.util.ArrayList;
public class Demo {
public static void main(String[] args) {
ArrayList<Demo> list = new ArrayList<>();
int count = 0;
try {
while(true){
list.add(new Demo());//利用JPofiler工具,即可查出这行代码的问题所在
count = count +1;
}
} catch (Exception e) {
System.out.println("count"+count);
e.printStackTrace();
}
}
}
虽然知道大对象出问题了,我们又怎么知道具体哪行代码写错了?
接着往下看~