博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《JVM 系列》- 内存溢出实战分析
阅读量:6307 次
发布时间:2019-06-22

本文共 939 字,大约阅读时间需要 3 分钟。

hot3.png

测试代码

class User{	}public class Program {		public static void main(String[] args) {		List
list=new ArrayList<>(); while(true){ User user=new User(); list.add(user); } }}

配置JVM参数

-XX:+HeapDumpOnOutOfMemoryError -Xms20m -Xmx20m

运行报错

java.lang.OutOfMemoryError: Java heap spaceDumping heap to java_pid11944.hprof ...Heap dump file created [27895404 bytes in 0.123 secs]Exception in thread "main" java.lang.OutOfMemoryError: Java heap space	at java.util.Arrays.copyOf(Arrays.java:2245)	at java.util.Arrays.copyOf(Arrays.java:2219)	at java.util.ArrayList.grow(ArrayList.java:242)	at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:216)	at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:208)	at java.util.ArrayList.add(ArrayList.java:440)	at com.jvm.Program.main(Program.java:11)

在项目根目录下,有个快照文件,使用Eclipse Memory Analyzer打开

205615_Hb73_2330610.png

发现大部分内存被main线程占用了

205840_vePl_2330610.png

而这些内存都用来保存User对象了

转载于:https://my.oschina.net/kimisme/blog/1609876

你可能感兴趣的文章
c#学习笔记05——数组&集合
查看>>
【图论算法】Dijstra&BFS
查看>>
注册和上传文件(头像)
查看>>
使用OVS
查看>>
键盘回收的几种方法
查看>>
Python(条件判断和循环)
查看>>
day4 linux安装python
查看>>
LeetCode Container With Most Water (Two Pointers)
查看>>
vue (v-if show 问题)
查看>>
https基础
查看>>
css3 canvas之刮刮卡效果
查看>>
并查集模板
查看>>
RESTful Mongodb
查看>>
BZOJ3237:[AHOI2013]连通图(线段树分治,并查集)
查看>>
如何提高Ajax性能
查看>>
Android--自定义加载框
查看>>
LINUX下 lamp安装及配置
查看>>
BZOJ3105 [cqoi2013]新Nim游戏
查看>>
困惑的前置操作与后置操作
查看>>
SDNU 1269.整数序列(水题)
查看>>