问题标签 [eclipse-memory-analyzer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3396 浏览

java - 以 .heapdump 文件格式打开堆转储

这可能很容易令人尴尬,但请多多包涵。

我必须分析堆转储,并收到.heapdump格式的文件,而我预期的.hprof文件。

Eclipse 内存分析器拒绝打开.heapdump文件,我不确定我应该使用哪个工具,或者应用哪个转换才能让它们与 mat 一起工作。

不幸的是,到目前为止,我对此事的搜索结果被基本教程所污染,即“如何打开 .heapdump 文件”让我得到了“如何分析堆转储”的结果。

从下面的评论中编辑

我已经尝试了一些建议(谢谢大家),但以下都没有奏效:

  • 使用 VisualVM 打开 → 不允许打开文件
  • Open with JHat → 抱怨幻数(显然期望另一种二进制格式,可能hprof
  • 使用 Chrome 开发者工具打开 → 不支持该.heapdump格式,也不会打开文件
0 投票
1 回答
95 浏览

eclipse - 内存分析器和任务管理器之间分配的内存差异

我想分析一个非常庞大的 Java VM 进程的内存使用情况。

我在启动 Eclipse 内存分析工具时意识到的一件事是所谓的分配内存之间存在巨大差异:Windows 任务管理器/CMD 任务列表显示大约 5.5GB,而内存分析器仅显示 1.1GB。造成这种差异的原因是什么?

0 投票
0 回答
158 浏览

java - What cause the OutOfMemoryError: PermGen space? MemoryAnalyzer shows the JNI local reference as the GC Root

I am running a test suite(Many test cases, with TestNG framework) on apache-tomee, which requires deploying and undeploying very frequently. but unfortunately the Apache Tomee instance throws OOM before the test suite completes.

Jconsole show that the heap and non-heap memory usage would just grow and grow.

I use the Eclipse Memory Analyzer to analyze the HeapDump file, but found something odd:

MemoryAnalyzer domainator_tree

Path to GC Root, all JNI Local reference....

I couldn't find out who is the GC Root of class TestNG And cause the OOM, we don't have any JNI Code.

The ThreadLocalMemoryLeakPreventionListener is configured to be Enabled. Apache-TomEE with tomcat8.0.32 JDK1.7.0_67

add: When i switch to JDK1.7.0_80 things get better but still OOM finally. Memory Analyzer show the same thing.

0 投票
1 回答
205 浏览

android - Android:内存分析器工具:确定对象的分配位置

我们在某些 Android 设备(Nexus 5、5.1.1)上似乎存在内存泄漏。

我们已经获得了一些内存转储并通过 Eclipse 内存分析器工具运行它们,并且似乎有越来越多的字节数组没有被清除。

在此处输入图像描述

右侧的 Tab 显示应用程序启动时的状态,左侧的选项卡显示 20 次左右的应用程序循环后的状态。(如果让应用程序继续运行其循环,最终将导致 oom)

如何使用该工具来跟踪这些字节数组的分配位置?

0 投票
1 回答
1236 浏览

multithreading - 是否可以使用线程转储找到线程的创建时间?

我使用jmap -dump:format=b,file=<file.dump> <PID>命令生成 JVM 实例的线程转储。我只想知道是否可以使用生成的线程转储找到在 JVM 实例中运行的线程的创建时间。

0 投票
2 回答
1851 浏览

java - 有什么方法可以分析截断的 Java 堆转储(hprof 文件)?

在我的工作中,我们遇到了一个难以重现的 OOM 问题。或者,更准确地说,它很容易在一个系统上重现,使该系统无法使用,但在给定相同输入的情况下很难在其他任何地方重现。

该应用程序正在使用服务包装器作为服务运行。我们确实设法更改了配置以通过在 OOM 上输出堆转储文件的选项来启动它,但不幸的是,它们被截断了,很可能是由于服务包装器在写入文件时超时并终止了进程。这很明显,因为最大内存设置为 1GB,而 hprof 文件小到 700MB,这对于 OOM 上的整个堆来说太小了。

额外配置包装器以使 java 进程有更长的时间来写出堆需要大量的跳跃,但我们正在使用以下两个选项来实现这一点:

问题是,我可以对截断的 hprof 文件做些什么有用的东西吗?Eclipse MAT 让他们窒息。Jhat 似乎加载了它们,但随后只显示了 3 个大小为 0 的 Java.Object 实例,没有别的。我试过YourKit,它不能写它的oids文件。

在我看来,这些文件中应该包含一些有用的、可访问的信息。有什么工具可以读取那里的内容吗?

感谢您的时间!

0 投票
2 回答
94 浏览

java - 如何使用内存分析器工具查找重复的库和版本冲突的类

IS 内存分析器工具允许查找给定输入应用程序中存在的重复库、类和版本冲突类

0 投票
0 回答
416 浏览

java - Heap Dump total Retained Heap < JVM Max memory 并且仍然 OutOfMemoryException?

我最近在我的 JVM 中遇到了一些 OutOfMemoryExceptions,并决定开始使用 MAT 分析我的堆转储,看看我是否可以查明哪些线程正在消耗我的大部分内存。

有趣的是,我查看了系统中的所有线程,发现所有线程的总保留堆约为 4.8G。但是,我的 JVM 的最大堆大小设置为 10G。我可以关联我的堆转储是一个 10G 文件。

这怎么可能?我的总保留大小是否需要接近 10G 限制才能生成 OOM?我在这里误解了什么吗?

根据概述选项卡:

确切的错误信息是:

我可以在我的堆转储中看到它试图复制的数组 (char[]) 相当大 (1G)。JVM 是在尝试执行时预先分配整个空间,copyOf还是在每个元素的基础上完成?

我正在尝试将哪些参数传递给该copyOf()方法,但不确定是否/如何在 MAT 中查看这些参数。有没有办法在线程视图中查看在 MAT 中调用的方法的参数,或者其他?

0 投票
0 回答
168 浏览

java - 如何在 Eclipse 内存分析器中调查太多对象的 OOM?

在一个应用程序(实际上是 HiveServer2)中,我遇到了 OOM 错误并得到了堆转储。

通过 Eclipse Memory Analyzer(EMA),我发现很多LinkedHashMap$Entry消耗了几乎所有的堆内存(16GB),但我想知道哪些组件使用了这么多的对象。

阻止我调查的是堆转储本身大约为 16GB,因此 EMA 的某些操作在我的笔记本电脑上不起作用。无论如何,有人知道我如何在 Eclipse 内存分析器中了解这一点吗?

在此处输入图像描述

0 投票
7 回答
16952 浏览

java - 如何在 Mac 操作系统上运行 Eclipse 内存分析器?

我在笔记本电脑上运行 Eclipse 内存分析器时遇到了一些问题。

当我刚刚下载(从地方)并执行应用程序时会发生这种情况:

在此处输入图像描述

在此处输入图像描述

而且我无法弄清楚问题的原因是什么。有人能帮我吗???