jvisualVM 分析heapdump
代码很简单,eclipse里面设置下最大堆空间为128m,:

@Test
public void testOutOfMemory() {
List<NewsAddDto> documents = new ArrayList<>();
while (true) {
NewsAddDto d = new NewsAddDto();
documents.add(d);
}
}
"Attach Listener" daemon prio=5 tid=5 RUNNABLE
"Finalizer" daemon prio=8 tid=3 WAITING
at java.lang.Object.wait(Native Method)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
Local Variable: java.lang.ref.ReferenceQueue#1
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
Local Variable: java.lang.System$2#1
"Signal Dispatcher" daemon prio=9 tid=4 RUNNABLE
"Reference Handler" daemon prio=10 tid=2 WAITING
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:503)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
"ReaderThread" prio=5 tid=9 RUNNABLE (堆转储时时,正在)
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
Local Variable: java.io.FileDescriptor#1
at java.net.SocketInputStream.read(SocketInputStream.java:122)
Local Variable: byte[]#1
Local Variable: java.net.SocketInputStream#1
at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:283)
at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:325)
Local Variable: java.nio.HeapCharBuffer#1
Local Variable: java.nio.charset.CoderResult#2
at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:177)
Local Variable: sun.nio.cs.StreamDecoder#1
at java.io.InputStreamReader.read(InputStreamReader.java:184)
Local Variable: char[]#10
at java.io.BufferedReader.fill(BufferedReader.java:154)
at java.io.BufferedReader.readLine(BufferedReader.java:317)
Local Variable: java.io.InputStreamReader#1
at java.io.BufferedReader.readLine(BufferedReader.java:382)
Local Variable: java.io.BufferedReader#1
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner$ReaderThread.run(RemoteTestRunner.java:135)
"main" prio=5 tid=1 RUNNABLE
at java.lang.OutOfMemoryError.<init>(OutOfMemoryError.java:48)
at news.TestNewsCollection.testOutOfMemory(TestNewsCollection.java:83)
Local Variable: java.util.ArrayList#12
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
Local Variable: sun.reflect.NativeMethodAccessorImpl#1
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
Local Variable: java.lang.reflect.Method#4
Local Variable: sun.reflect.DelegatingMethodAccessorImpl#1
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
Local Variable: org.junit.runners.model.FrameworkMethod$1#1
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
Local Variable: news.TestNewsCollection#1
Local Variable: java.lang.Object[]#13
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
Local Variable: org.junit.internal.runners.statements.InvokeMethod#1
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
Local Variable: java.util.ArrayList$Itr#1
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
Local Variable: org.junit.internal.runners.statements.RunBefores#1
Local Variable: org.junit.internal.runners.model.EachTestNotifier#1
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
Local Variable: org.junit.runner.Description#2
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
Local Variable: org.junit.runners.ParentRunner$1#1
Local Variable: org.junit.runners.ParentRunner$3#1
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
Local Variable: org.junit.runners.model.FrameworkMethod#1
Local Variable: java.util.ArrayList$Itr#2
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
Local Variable: org.junit.runners.ParentRunner$2#1
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
Local Variable: java.util.ArrayList$Itr#3
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
Local Variable: org.junit.runners.BlockJUnit4ClassRunner#1
Local Variable: org.junit.internal.runners.statements.RunBefores#2
Local Variable: org.junit.internal.runners.model.EachTestNotifier#2
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
Local Variable: org.junit.runner.notification.RunNotifier#1
Local Variable: org.junit.runner.Result#1
Local Variable: org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference#1
Local Variable: org.junit.runner.Result$Listener#1
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
Local Variable: java.lang.String#21
Local Variable: java.lang.String[]#2
Local Variable: org.eclipse.jdt.internal.junit.runner.ITestReference[]#1
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
Local Variable: org.eclipse.jdt.internal.junit.runner.TestExecution#1
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
Local Variable: org.eclipse.jdt.internal.junit.runner.FirstRunExecutionListener#1
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Local Variable: java.lang.String[]#3
Local Variable: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner#1
jvisualVM 分析heapdump的更多相关文章
- Eclipse MAT和jvisualvm分析内存溢出
---------------------------------------------mac os版------------------------------------------------ ...
- 使用jdk自带工具jvisualvm 分析内存dump文件
1.获取dump文件 使用 以下命令 创建 进程PID = 16231的 dump文件,命名为 order.hprof jmap -dump:format=b,file=order.hprof 162 ...
- 【JVM】Java中的JavaCore/HeapDump文件及其分析方法
产生时间 Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下. 有时致命问题发生后,Java应用不会死掉,还能继续运行: 但有时致命问题 ...
- HeapAnalyzer分析工具
HeapAnalyzer分析工具 由于jvisualvm或jmap生成的dump文件太大,常常需要用到dump文件分析工具对dump文件进行分析.HeapAnalyzer通过分析heapdump文件, ...
- JVM内存问题分析
JVM运行时数据区: 1.方法区:类信息(类名,访问修饰符.字段描述.方法 描述等).常量.静态变量.即时编译后的class文件等.在GC时用永久代来实现方法区 2.运行时常量池:是方法区的一部分,存 ...
- 如何使用JVisualVM进行性能分析
地址:https://visualvm.dev.java.net/ 连接 1.本地机器的程序直接可以监听到 2.远程机器的程序需要加上JVM参数 -Dcom.sun.management.jmxrem ...
- 013-程序性能分析之thread dump和heap dump
一.dump基本概念 主要用于故障定位(尤其是out of memory)和性能分析.主要记录了JVM运行期间的内存占用.线程执行等情况,这就是常说的dump文件.常用的有heap dump和thre ...
- Java 使用命令对堆线程分析
一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...
- 什么是java OOM?如何分析及解决oom问题?
最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要 ...
随机推荐
- java18
1:Map(掌握) (1)将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. (2)Map和Collection的区别? A:Map 存储的是键值对形式的元素,键唯一,值可以重 ...
- 分享一些不错的sql语句
1.说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 法一:select * into b from a where 1 <> ...
- c#接口
//接口中方法 属性 事件等默认都是public 不允许用修饰符修饰 public interface IEventInterFace { string this[int index] { get; ...
- 数据库基础和JDBC
一SQL查询 练习: 1.在grade表中查找80-90分的学生学号和分数 select studentid 学号,score 分数 form grade where socre between 80 ...
- JAVA实现 springMVC方式的微信接入、实现消息自动回复
前段时间小忙了一阵,微信公众号的开发,从零开始看文档,踩了不少坑,也算是熬过来了,最近考虑做一些总结,方便以后再开发的时候回顾,也给正在做相关项目的同学做个参考. 思路 微信接入:用户消息和开发者需要 ...
- 在CentOS7上安装Docker
具体过程如下 到网站下载centos7: http://isoredirect.centos.org/ http://isoredirect.centos.org/centos/7/isos/x86_ ...
- LockSupport
LockSupport是高级线程同步类的基础,用来block和释放线程.这里要区别notify和wait的点在于这里可以先unpark,再park.(有点类似于unpark等于-1,park等于+1. ...
- 【leetcode】Simplify Path
题目简述: Given an absolute path for a file (Unix-style), simplify it. For example, path = "/home/& ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 第一章
Asp.Net MVC4 + Oracle + EasyUI 第一章 --操作数据和验证 本文链接:http://www.cnblogs.com/likeli/p/4234238.html 文章集合 ...
- 【centOS】账号管理
一.认识/etc/passwd和/etc/shadow 1.passwd的构造 上图为passwd其中一个用户的用户信息,分别表示为[用户名][密码][UID][GID][注释][家目录][Shell ...