(一)深入java虛擬機之內存溢出與分析
阿新 • • 發佈:2017-12-29
nal 一段時間 http run argument sta 配置 ali static
一、內存溢出程序
public class Test { public static void main(String[] args) { List<User> userList=new ArrayList<User>(); while(true) { userList.add(new User()); } } }
public class User implements Serializable { /** * */ private staticfinal long serialVersionUID = 1L; private Integer id; private String userName; private String pwd; //省略getset方法 }
- 當程序運行起來後一段時間內存就會溢出。
二、查看內存溢出情況
2.1 安裝內存分析工具
2.2 運行參數配置
Run as-->Run Configurations-->Arguments-->VM arguments:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError,配置20M當做內存溢出上限,方便測試,具體大小大家可以自己控制。-XX:+HeapDumpOnOutOfMemoryError 配置後,當存溢出就會生成文件。
2.3 運行程序
- 刷新工程,生成文件
- 雙擊打開
如上圖可知,是main線程的ArrayList內存溢出
(一)深入java虛擬機之內存溢出與分析