代码很简单,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的更多相关文章

  1. Eclipse MAT和jvisualvm分析内存溢出

    ---------------------------------------------mac os版------------------------------------------------ ...

  2. 使用jdk自带工具jvisualvm 分析内存dump文件

    1.获取dump文件 使用 以下命令 创建 进程PID = 16231的 dump文件,命名为 order.hprof jmap -dump:format=b,file=order.hprof 162 ...

  3. 【JVM】Java中的JavaCore/HeapDump文件及其分析方法

    产生时间 Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下. 有时致命问题发生后,Java应用不会死掉,还能继续运行: 但有时致命问题 ...

  4. HeapAnalyzer分析工具

    HeapAnalyzer分析工具 由于jvisualvm或jmap生成的dump文件太大,常常需要用到dump文件分析工具对dump文件进行分析.HeapAnalyzer通过分析heapdump文件, ...

  5. JVM内存问题分析

    JVM运行时数据区: 1.方法区:类信息(类名,访问修饰符.字段描述.方法 描述等).常量.静态变量.即时编译后的class文件等.在GC时用永久代来实现方法区 2.运行时常量池:是方法区的一部分,存 ...

  6. 如何使用JVisualVM进行性能分析

    地址:https://visualvm.dev.java.net/ 连接 1.本地机器的程序直接可以监听到 2.远程机器的程序需要加上JVM参数 -Dcom.sun.management.jmxrem ...

  7. 013-程序性能分析之thread dump和heap dump

    一.dump基本概念 主要用于故障定位(尤其是out of memory)和性能分析.主要记录了JVM运行期间的内存占用.线程执行等情况,这就是常说的dump文件.常用的有heap dump和thre ...

  8. Java 使用命令对堆线程分析

    一.dump基本概念 在故障定位(尤其是out of memory)和性能分析的时候,经常会用到一些文件来帮助我们排除代码问题.这些文件记录了JVM运行期间的内存占用.线程执行等情况,这就是我们常说的 ...

  9. 什么是java OOM?如何分析及解决oom问题?

    最近查找了很多关于OOM,甚至于Java内存管理以及JVM的相关资料,发现这方面的东西太多了,竟有一种眼花缭乱的感觉,要想了解全面的话,恐非一篇文章能说清的,因此按照自己的理解整理了一篇,剩下的还需要 ...

随机推荐

  1. Android编程容易犯的错误之一

    1.设置TextView的文本颜色 TextView tv; ... tv.setTextColor(R.color.white); 其实这样设置的颜色是 R.color.white的资源ID值所代表 ...

  2. Maven下载依赖项的源代码(source code)和Javadoc

    Maven 默认只下载依赖项本身的 jar 文件,不下载源代码和 Javadoc.如此固然工程的体积是最小的,但在开发者不熟悉依赖的对象时,需要查找源代码中的方法定义和说明. 这时我们需要使用一条 M ...

  3. winrt简单克隆对象

    public MapPoint Copy()//MapPoint克隆方法 { MapPoint p = new MapPoint();//这是我自定义的对象 //利用反射获得类成员 FieldInfo ...

  4. 使用jquery实现单选框、多选框取消选中状态

    function radioReset(){ /*方式一*/ /* var radios = $("input[type='radio']"); for (i=0; i<ra ...

  5. HTML5本地数据库(SQLite)示例

    本文转载自http://blog.sina.com.cn/s/blog_641cf27f01016pm5.html 按照国内一HTML5先行者的例子仿写了一个用HTML5 API来操作本地SQLite ...

  6. tp框架之增删改查

    控制器 <?php namespace Home\Controller; use Think\Controller; class CeShiController extends Controll ...

  7. C语言中do...while(0)的妙用(转载)

    转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...

  8. Java远程方法调用(Remote Method Invocation,RMI)

    Java RMI简介: 它是Java的一个核心API和类库,允许一个Java虚拟机上运行的Java程序调用不同虚拟机上运行的对象中的方法,即使这两个虚拟机运行于物理隔离的不同主机上. Java RMI ...

  9. Android 笔记 day4

    单元测试

  10. [Unity3D插件]2dToolKit系列三 碰撞检测功能的实现以及障碍物的随机摆放

    貌似有一段时间没更新2dtoolkit系列了,这段时间一直在忙着其他事情,今天开始继续这个插件系列的教程,网上搜索,貌似关于这个插件的教程无非还是跟官方的教程很类似,有的甚至都没有自己照着亲手实践一遍 ...