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,双击项目下,刚才的分析文件,就可以打开分析编辑器,点击下图中的按钮,
在打开的树种可以看到,其中某一项会占据内存比较多的,如果继续展开,会发现,这里会告诉你,那一项会是占据内存的主要原因,这里可以清楚地看到,demo的这个对象,有很多,说明创建这个demo的对象,没有被回收
java内存溢出怎样查找代码_JVM - 内存溢出,问题查找相关推荐
- java gc堆中的分区_jvm内存各个区域详解
内存区域划分 Java虚拟机所管理的内存区域分为如下部分:方法区.GC堆.虚拟机栈.本地方法栈.PC程序计数器. 其中方法区.GC堆是所有线程共享的:虚拟机栈.本地方法栈.PC程序计数器是各个线程独占 ...
- java死锁怎么用jvm调试_jvm 内存dump、gc查看、线程死锁,jmap、jstack、jstat
1. jstat 这个命令对于查看Jvm的堆栈信息很有用.能够查看eden,survivor,old,perm等heap的capacity,utility信息 对于查看系统是不是有能存泄漏以及参数设置 ...
- Java 常见内存溢出异常与代码实现
Java 堆 OutOfMemoryError Java 堆是用来存储对象实例的, 因此如果我们不断地创建对象, 并且保证 GC Root 和创建的对象之间有可达路径以免对象被垃圾回收, 那么当创建的 ...
- java 内存溢出 内存泄露_JVM——内存泄漏与内存溢出
1.内存溢出 1.1 什么是Java的内存溢出? 在Java程序运行的过程中,经常会碰到以下错误:java.lang.OutOfMemoryError. 通俗讲,内存溢出是指程序在申请内存时,没有足够 ...
- java代码耗尽内存_有关Java内存溢出及内存消耗的小知识
内存溢出原理: 我们知道,Java程序本身是不能直接在计算机上运行的,它需要依赖于硬件基础之上的操作系统和JVM(Java虚拟机). Java程序启动时JVM都会分配一个初始内存和最大内存给这个应用程 ...
- 46栈内存溢出、内存区域(程序计数器、Java 虚拟机栈、本地方法栈、Java 堆、方法区、直接内存、内存溢出)与内存溢出(对象实例化分析)
46.什么情况下会发生栈内存溢出 46.1.Java 内存区域与内存溢出 46.1.1.内存区域 46.1.1.1.程序计数器 46.1.1.2.Java 虚拟机栈 46.1.1.3.本地方法栈 46 ...
- java 内存调优_JVM内存模型以及性能调优
JVM 内存模型 JVM.png 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.分支.循环.跳转.异常处理.线程恢复等基础功能都需要依赖这个计数器来完成. ...
- java线程工作内存在栈中吗_JVM常见面试题解析
前言 总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新. 1.什么情况下会发生栈内存溢出. 思路: 描述栈定义,再描述为什么会溢出 ...
- java上帝模块常见的情况_JVM上帝视角看JVM内存模型,分而治之论各模块详情详解...
1. 上帝视角 [树看JVM] [图看JVM] 2. 分而治之 2.1 堆区 构成:堆区由新生代和老年代组成,新生代中包含伊甸区(Eden).幸存者区(survivor from .survivor ...
最新文章
- liunx复制备份命令,copy命令,liunx命令
- python会搞坏电脑吗_搞python,把原本php环境所需的libjpeg搞坏了
- 一口气发布1008种机器翻译模型,GitHub最火NLP项目大更新:涵盖140种语言组合
- Docker Swarm mode与滚动升级
- 解惑(一) ----- super(XXX, self).__init__()到底是代表什么含义
- 【转】学习笔记:GoogLeNet
- 六步实现Spring.NET 与 NHibernate 的整合
- iOS多任务:suspend VS terminate
- yocto rootfs 支持pam
- linux C 语言的 system
- zabbix监控tomcat服务
- 文献管理三剑客之Mendeley
- 【论文查重】常用论文写作查重润色网站
- 使用python和requests爬取世界卫生组织vigiaccess不良反应数据库
- 【算法设计与分析】图搜索算法的应用
- UCF Local Programming Contest 2018题解
- Unity SKFramework框架(二十四)、Avatar Controller 第三人称控制
- 当阿里云服务器 ECS 访问不了公网 ip可能存在的原因以及如何解决的办法
- 测试用例及其注意事项
- 2021.1.22平安科技面经--算法工程师实习生
热门文章
- HALCON示例程序dem_trees.hdev提取树
- windows系统环境变量过长解决方案(PATH too long installer unable to modify Path)
- This is Me!——回顾第一个项目的前前后后
- 我的世界1.7.10java32位_我的世界1.7.10中文版
- 计算机控制学什么,计算机控制技术专业介绍
- creator图片循环显示_CocosCreator背景图循环播放
- Cs231n课堂内容记录-Lecture 5 卷积神经网络介绍
- linux常用命令:top 命令
- js 类数组arguments详解
- VA Code编写html(1)