(一)深入java虚拟机之内存溢出与分析
2024-08-29 12:03:47
一、内存溢出程序
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内存溢出
最新文章
- IT人 转型
- 您的应用静态链接到的 OpenSSL 版本有多个安全漏洞。建议您尽快更新 OpenSSL
- [2013 Final] Colors
- SQL Server同步复制问题排查方法
- Vusual C++连接Mysql和从MySql中取出数据的API介绍
- Android EditText的常用技巧
- HTML对JSON的操作
- Java基础知识强化之IO流笔记23:计算机是如何识别把两个字节拼接为中文(附加)
- Android 虚拟机快捷键
- bzoj4318: OSU!&;&;CF235BLet&#39;s Play Osu!
- tomcat部署项目时省略项目名
- python实现K聚类算法
- TodoMVC:帮助你选择一个MV*框架
- jquery 找同胞系列siblings() ,next() ,nextAll(), nextUntil(), prev(), prevAll(), prevUntil()
- P2430 严酷的训练 题解
- 用Redis实现分布式锁 与 实现任务队列
- django的request介绍和APIView流程分析和CBV的流程分析
- PyQt5 布局
- Java时间处理类SimpleDateFormat的parse和format方法的正确使用
- PHP中cookies跨目录无法调用