java内存溢出怎样查找代码_JVM - 内存溢出,问题查找

当内存溢出会抛出 java.lang.OutOfMemoryError: Java heap space 的异常,那这个时候怎样去分析到底哪里导致内存溢出呢?

我们可以通过在vm的参数, -XX:+HeapDumpOnOutOfMemoryError 记住这个理是大写XX。

当内存溢出后,显示

java.lang.OutOfMemoryError: Java heap space

Dumping heap to java_pid1034.hprof ...

Heap dump file created [136202426 bytes in 0.908secs]

Exceptionin thread "main"java.lang.OutOfMemoryError: Java heap space

at java.util.Arrays.copyOf(Arrays.java:3210)

at java.util.Arrays.copyOf(Arrays.java:3181)

at java.util.ArrayList.grow(ArrayList.java:261)

at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235)

at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227)

at java.util.ArrayList.add(ArrayList.java:458)

at test.a.Test.main(Test.java:11)

然后可以在项目下,找到上面所指的文件,这里的文件叫,java_pid1034.hprof

直接打开是无法知道里面是什么意思,所以需要eclipse提供的一些工具来进行分析, 可以在网上搜索Eclipse Memory Analysis,或者在Eclipse Market哪里搜索直接下载相关插件就可以了

下面来看看是怎样一个分析过程:

首先我们打开eclipse,双击项目下,刚才的分析文件,就可以打开分析编辑器,点击下图中的按钮,

f8d5c30eecfb9f0bb9757022e3303005.png

在打开的树种可以看到,其中某一项会占据内存比较多的,如果继续展开,会发现,这里会告诉你,那一项会是占据内存的主要原因,这里可以清楚地看到,demo的这个对象,有很多,说明创建这个demo的对象,没有被回收

5c4024766b7e5e26721cc4fb941dce6a.png

6c90dc580e0d7c6af11a93f0c46f2783.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/271142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

系统设计知识:系统模块结构设计知识笔记

1、什么是模块?模块可以认为是组成系统的基本单位,它具有可组合、分解、更换的特点。系统中任何一个处理功能都能看成是一个模块。模块根据具体化的程度可划分为逻辑模块和物理模块。模块的要素:输入输出:模块的输入来源和去向都是…

安卓扫一扫自动跳转软件_ipad软件使用技巧

适用于三款ipadipad pro 1ipad pro2ipad 2018三个ipad软件分别是notability、goodnotes、和MarginNote,这三个软件各有特点。其中notability、goodnotes是笔记软件,同样都可以自己创立笔记本配合苹果笔像手写一样做笔记,也可以导入pdf作为阅读…

第12章 使用Samba或NFS实现文件共享

章节简述: 本章节为读者讲述文件共享系统的作用,了解Samba与NFS服务程序的开发背景以及用法。 详细逐条讲解Samba服务配置参数,演示安全共享文件的配置策方法,并使用autofs服务程序自动挂载设备, 学会后即可实现Linux…

ExtClassLoader和AppClassLoader是Launcher类的两个内部类

sun.misc.Launcher他是一个java虚拟机的入口应用 看下Launcher类 ExtClassLoader和AppClassLoader是Launcher类的两个内部类

系统输入输入出设计相关知识介绍

1、输出设计输出设计主要包括:确定输出内容、选择输出设备与介质、确定输出格式三个方面的内容。确定输出内容:输出内容的设计首先要确定用户在使用信息方面的需求,然后设计输出信息的内容,包信息形式(括文字、图形、表…

计算机知识:电脑系统盘文件夹详解

今天给大家介绍一下电脑系统盘(C盘)的相关知识。C盘变红,是存储空间告急。C盘里通常都是安装的系统文件,一般情况下不放其他文件,如果放了可以转移到其他盘里去。还有一个就是电脑桌面,通常也是属于C盘空间…

【代码笔记】iOS-字体抖动动画

一,效果图。 二,代码。 ViewController.m #import "ViewController.h"interface ViewController ()endimplementation ViewController- (void)viewDidLoad {[super viewDidLoad];// Do any additional setup after loading the view, typicall…

ElementUI+VUE 日期控件禁用用法

今天给大家整理一下ElementUIVUE 日期控件禁用用法&#xff0c;希望对大家有所帮助&#xff01;HTML文件<el-date-pickerv-model"value"type"date":editable"false"placeholder"开始日期"value-format"yyyy-MM-dd":picke…

利用rfcomm实现树莓派与手机通信_工业物联网 | 怎么用NodeRed实现树莓派与阿里云物联网平台通信?虹科告诉你!...

想获取更多IIOT干货请点击蓝字&#xff0c;关注我们虹科工业树莓派高性能多接口宽温--适应恶劣环境★★★★★Node-RED是构建物联网(IoT)应用程序的强大工具&#xff0c;它使用可视化的编程方法&#xff0c;允许开发人员将预定义的代码块(称为“节点”)连接在一起以执行任务。当…

mysql的mtr是指什么_MySQL中MTR的概念

MTR全称是Mini-Transaction&#xff0c;顾名思义&#xff0c;可以理解为"最小的事务"&#xff0c;MySQL中把对底层页面的一次原子访问的过程称之为一个Mini-Transaction&#xff0c;这里的原子操作&#xff0c;指的是要么全部成功&#xff0c;要么全部失败&#xff0…

前端:Element UI 多选框组用法笔记

今天给大家分享一下Element UI 多选框组用法笔记&#xff0c;直接上代码&#xff01;<html><head></head><body><el-form> <el-form-item label"兴趣爱好:"> <el-checkbox-group v-model"form.checkList"> <…

xiaocms 关于搜索功能 添加搜索字段

自己折磨了好几天 就是没研究个出像样的的东西 看了一下 core/controller/index.php searchAction()方法 但是不知从何下手。查了sql语句&#xff0c;还是没实现 请教了一位自学php的小弟 &#xff0c;人家三下五除二的功夫就做出来了 解决的思路是一样的&#xff0c;可我就是…

python编程第四版_清华编程教授强力推荐《Python编程》,指导你如何学习python

Python编程真的那么容易吗&#xff1f;仅仅是看理论就可以学以致用吗&#xff1f;今天我给你介绍的这本书&#xff0c;也许会让你开始改变这种想法&#xff0c;因为这本书上的练习和案例以及指导本身就足够学好Python了。清华编程教授强力推荐《Python编程》&#xff0c;指导你…

微信终于可以发送大文件了!

来源丨扩展迷EXTFANS&#xff08;ID&#xff1a;infinitydaily&#xff09;https://mp.weixin.qq.com/s/EAwYnq7435oMQnz6JqkHYg微信作为一款国民级的通讯软件&#xff0c;虽然用户基数庞大&#xff0c;但在用户体验方面一直饱受诟病&#xff0c;尤其是在部分功能方面&#xff…

Iterable 超级接口

这是一个老祖宗,一代一代往下拨 collection 的方法如下,是一个跟接口方法如下,见API collection : add():添加一个元素     addAll():添加一组元素 clear();清空     remove(Object o) &#xff1a;移除     removeAll():移除一组元素     isEmpty();判断集合…

pc寄存器or程序计数器

一&#xff1a;PC寄存器解释 二&#xff1a;PC寄存器的作用

项目设计基础:处理过程设计相关知识介绍​

处理过程设计关键是用一种适当的表示形式来描述每个模块执行过程。常用的表示形式有图形、语言、表格。比如传统的框图、判定表等。1、程序流程图&#xff08;Program Flow Chart&#xff09;程序流程图也成为程序框图&#xff0c;是最早、流行最广泛的一种图形表示方法。程序流…

git冲突“accept theirs”和“accept yours”

Accept Yours 就是直接选取本地的代码&#xff0c;覆盖掉远程仓库的 Accept Theirs 是直接选取远程仓库的&#xff0c;覆盖掉自己本地的 我们选择Merge,自己手动行进选择、修改。 这里左边部分是你本地仓库的代码&#xff0c;右边部分是远程仓库的代码&#xff0c;中间的res…