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的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要 ...
随机推荐
- cain使用教程
Cain & Abel 是由Oxid.it开发的一个针对Microsoft操作系统的免费口令恢复工具.号称穷人使用的L0phtcrack.它的功能十分强大,可以网络嗅探,网络欺骗,破解加密口令 ...
- HTML5 声明兼容IE的写法(转载)
HTML5 声明兼容IE的写法(转载) 1 2 3 4 5 6 7 8 9 10 <!DOCTYPE html> <!--[if IE]> <meta http-eq ...
- unrecognized selector sent to instance
今天长一见识(特此感谢小星星老湿-坏笑),凡是遇到“unrecognized selector sent to instance *******”的都是******方法没有,比如这种的错误: 可以尝试 ...
- Android笔记:通知
可以在活动里创建,也可以在广播接收器里创建,还可以在服务里创建. NotificationManager manager = (NotificationManager)getSystemService ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- iOS之initialize与load
initialize和load 这两个方法都是是什么时候调用的呢?都有着什么样的作用,下面看看吧! initialize +(void)initialize{ } 什么时候调用:当第一次使用这个类的时 ...
- [转] CC 命令
1.最基本的操作cleartool co -nc xxx.cppcleartool ci -nc xxx.cpp 2.查看自己总共co了多少文件cleartool lscheckout -cview ...
- php curl 例子
get方式: set_time_limit(0); $url ='http://xxxxxxxx?pwd=wJ2312&s=1&e=2&d=1&t=asc ...
- java -- getOutputStream() has already been called for
原文:https://my.oschina.net/zhongwenhao/blog/209653 原因:既调用了response.getOutputStream(),又调用了response.get ...
- Oracle 11g 新特性之Highly Available IP(HAIP)
Redundant Interconnect with Highly Available IP (HAIP) 简介 从11.2.0.2开始,Oracle 的集群软件Grid Infrastruct ...