问题标签 [hprof]

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 回答
2430 浏览

java - OutOfMemoryError - 创建 hprof 后如何杀死 JVM

我希望我的 java 在捕获时退出OutOfMemoryError,我正在使用-XX:+HeapDumpOnOutOfMemoryError转储hprof文件。
我无法使用kill -9 <pid>,因为转储文件时需要启动 JVM hprof,有没有办法在hprof文件创建后停止 JVM?

需要明确的是,我使用的是 Sun 的 JVM 版本 6。

0 投票
3 回答
13864 浏览

java - heapdump 大小与 hprof 大小

当我的 jboss 服务器运行 xms 为 4096m 和 xmx 为 4096m 以及 permsize 为 512m 时,我最近以 hprof 格式进行了 heapdump。

生成的 hprof 文件超过 5gb。当我在 visualvm、mat 分析器或 yourkit 中加载堆转储时,我只看到大约 1gb 的总字节。我已尝试更改 yourkit 中的可达性范围,但它显示的大小不超过 1 GB。

知道文件大小与显示的堆转储大小的巨大差异会导致什么吗?

ps:我用的是jdk1.6.0_23

不幸的是,我不允许在这里提交屏幕截图。

在文件系统上,hprof 大小为 5.227.659 kb,在 yourkit 中它指出:

对象:9.738.282 / 浅层大小 740 mb / 保留大小:740 mb 其中可到达的字符串:6.652.515 (68%) / 浅层大小:381 mb (51%) / 保留大小:381 MB (51%)

最大保留大小是 206.810.176 的 byte[]

0 投票
7 回答
11612 浏览

java - 是否可以从 hprof 转储/堆转储中的线程中查看线程

我有一个大型(5GB)hprof 转储,由应用程序在OutOfMemoryError发生时创建。(使用 XX:HeapDumpOnOutOfMemoryError)。

不幸的是,发生此错误时没有收集任何日志。重新创建这将需要几个小时。我希望某些工具可以显示来自 hprof 的异常堆栈跟踪或所有线程堆栈等。

我目前正在使用MAT,看不到获取线程信息的方法。我可以使用哪个工具?

(我不确定 hprof 文件是否有关于 OOM 发生时调用的线程/位置的信息)。

(我知道在正常情况下如何进行线程转储。这里的麻烦是事件已经发生了,我只有 hprof 转储。)

0 投票
2 回答
10868 浏览

android - MAT (Eclipse Memory Analyzer) - how to view bitmaps from memory dump

I'm analyzing memory usage of my Android app with help of Eclipse Memory Analyzer (also known as MAT). Sometimes I can find strange instances of android.graphics.Bitmap class, utilizing big portion of heap. Problem is what I can't find source of this bitmaps, no filename, no resourceID, nothing. All information what I can find for bitmap is following: bitmap_info

There is a field mBuffer with array of image pixels, I assume. But it's in some internal Android format, not PNG.

Question: how can I view image represented by this bitmap from memory dump?

0 投票
1 回答
1590 浏览

java - 如何在 jar 中分析一个类?

mvn assembly:assembly如果我在试图分析的 JAR(用 编译)中有一个类,那么获取可以与 jhat 或 Eclipse 内存分析器一起使用的有效核心转储的命令是什么?

我试着运行这个:

java -agentlib:hprof=heap=sites,cpu=samples,file=profile.hprof,format=b -jar the-jar.jar

并且当我停止进程时会创建核心转储。

但 jhat 或 Eclipse 内存分析器都不会将此视为有效转储。

jhat 给了我这个警告:

还阅读了 hprof 文档,我看到我必须传递类名。当它在 JAR 中时,我该怎么做?

0 投票
0 回答
2303 浏览

java - 无法将 coredump 转换为 hprof

我有一个 core.31690 文件,我想将其转换为 hprof。我试过了:jmap -dump:format=b,file=mydump.hprof /usr/bin/java core.31690但我得到了以下信息:

我尝试在网上查找,但找不到任何东西。任何指针?

0 投票
0 回答
1131 浏览

java - 使用 YourKit 打开 Hadoop HPROF .profile 文件

YourKit 声称能够打开二进制 HPROF 转储,但它坚持认为从 Hadoop 作业生成的二进制转储不是有效的快照。

转储是通过将mapred.task.profile.params选项指定为-agentlib:hprof=cpu=samples,heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s,format=b(如 Hadoop:The Definitive Guide 中所指定)来进行的。

有什么方法可以用 YourKit 打开这个文件吗?是否有其他图形分析工具可以打开创建的文件?

0 投票
1 回答
219 浏览

java - 使用 JVMTI 计算 CPU 使用率

我正在寻找我的 java 应用程序的 CPU 使用率。我发现获得 CPU 使用率的最佳方法是 (process_time/elapsed_time)*100.0。对于 java 应用程序,process_time 由 com.sun.management.OperatingSystemMXBean 获取。有没有办法使用 JVMTI 计算 CPU 使用率。

0 投票
1 回答
771 浏览

java - HPROF 在尝试查找 Maven 构建内存泄漏时抱怨

我有一个 Maven 构建,它似乎偶尔会出现泄漏,导致 Java 进程耗尽 PermGen 内存(编辑),我从 VisualVM 了解到,每当构建新的时,堆和 PermGen 显着增加。现在我想找出泄漏的位置(编辑:而不仅仅是摆脱偶尔的异常)。

似乎标准的方法是让 HPROF 收集数据以进行验尸分析。但是,这对我来说失败了,并且生成的 java.hprof 文件无法被工具正确解析。

我的“mvn.bat”文件看起来像(Windows 7 上的 64 位 JVM):

我的 MAVEN_OPTS 看起来像

这是“mvn clean”的结果。


(并且不断地不断地)。我不熟悉hprof。

从这里继续的最佳方式是什么?

0 投票
1 回答
147 浏览

android - ListActivity 性能问题

我的ListActivity. 当我打开它并开始滚动时,应用程序会冻结几秒钟,然后就可以平滑滚动了。我没有收到“应用程序未响应”错误。我做了一个*.hprof堆转储并将其放入 MAT。在这里你可以看到我的泄漏:

使用 MAT 进行内存分析

内存泄漏嫌疑人

好像有什么鱼腥味。也许我没有以正确的方式使用光标。在这里你可以看看我的代码:

EDIT1:
问题不是来自数据库,因为我与以下代码有相同的泄漏:

如果有人能找到内存泄漏,那就太棒了。
问候迈克!