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的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要 ...
随机推荐
- 使用http.sys,让delphi 的多层服务飞起来
核心提示:一直以来,delphi 的网络通讯层都是以indy 为主,虽然indy 的功能非常多,涉及到网络服务的各个方面,但是对于大多数多层服务来说,就是需要一个快速.稳定.高效的传输层.Delphi ...
- 批量删除 svn文件
windows下批量删除SVN的方法 ============================ 在.svn的同级目录,也就是项目的根目录 新建文件 killsvn.bat 输入内容: @echo on ...
- MVC与MVVM区别?
在MVC里,View是可以直接访问Model的!从而,View里会包含Model信息,不可避免的还要包括一些业务逻辑. MVC模型关注的是Model的不变,所以,在MVC模型里,Model不依赖于Vi ...
- 未备案域名打开国内服务器上的网站(绑定国外空间并判断url后跳转引用)
场景:由于域名没备案不能绑定国内服务器,通过先绑定国外空间,在空间着陆页判断当前url,打开不同的页面.页面上通过iframe引用国内服务器上的目标网站. 实现:未备案域名打开国内服务器上的网站. 国 ...
- yii2.0的分页和排序
//排序 $sort = new Sort([ 'attributes' => [ 'age' => [ 'asc' => ['age' => SORT_ASC], 'desc ...
- 1.UI初认识
前节:app是什么? app英文全称:application 应用程序,简称应用.也就是手机应用的简写 出处:http://www.cnblogs.com/mcj-coding/p/5098254.h ...
- js串讲整理
js子级窗口向父级窗口传值 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http ...
- IBatis和Hibernate区别
1. 简介 Hibernate是当前最流行的O/R mapping框架.它出身于sf.net,现在已经成为Jboss的一部分了.iBATIS是另外一种优秀的O/R mapping框架,现已改名叫myB ...
- Jetty官方文档翻译
最近在学习Jetty,没有找到合适的资料,所有只能看官方文档了,但是只有英文的,想着自己翻译着学也是学还不如把学习的过程放到网上,也可以给需要的人看,英文水平毕竟有限,也是用有道翻译着来的,不过也加了 ...
- 简述Linux命令初使用
.cd 命令 cd 命令经常使用来改变目录 root@test:~# cd /home/user/Desktop root@test:~# cd .. 返回上一级目录 root@test:~# cd ...