码迷,mamicode.com
首页 > 编程语言 > 详细

(一)深入java虚拟机之内存溢出与分析

时间:2017-12-28 23:27:08      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:out   参数配置   lis   配置   工程   ima   就会   运行程序   username   

一、内存溢出程序

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 static final 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虚拟机之内存溢出与分析

标签:out   参数配置   lis   配置   工程   ima   就会   运行程序   username   

原文地址:https://www.cnblogs.com/shyroke/p/8137694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!