相关疑难解决方法(0)

如何分析.hprof文件?

我有一个使用以下标志运行的生产服务器: - XX:+ HeapDumpOnOutOfMemoryError

昨晚它在我们的服务器遇到堆错误时生成了一个java-38942.hprof文件.事实证明,系统的开发人员知道标志,但无法从中获取任何有用的信息.

有任何想法吗?

java heap profiling

213
推荐指数
7
解决办法
29万
查看次数

Eclipse Memory Analyzer,但始终显示发生内部错误?

java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid2584.hprof ...
Heap dump file created [106948719 bytes in 4.213 secs]
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2760)
at java.util.Arrays.copyOf(Arrays.java:2734)
at java.util.ArrayList.ensureCapacity(ArrayList.java:167)
at java.util.ArrayList.add(ArrayList.java:351)
at Main.main(Main.java:15)
Run Code Online (Sandbox Code Playgroud)

但是当我通过Eclipse Memory Analyzer打开head dump java_pid2584.hprof时,总会有消息:

An internal error occurred during: 
"Parsing heap dump from **\java_pid6564.hprof'".Java heap space
Run Code Online (Sandbox Code Playgroud)

java eclipse memory

59
推荐指数
8
解决办法
5万
查看次数

在大型Java堆转储中查找内存泄漏的方法

我必须在Java应用程序中发现内存泄漏.我对此有一些经验,但希望就此采用方法/策略方面的建议.欢迎任何参考和建议.

关于我们的情况:

  1. 堆转储大于1 GB
  2. 我们有5次堆转储.
  3. 我们没有任何测试案例来激发这一点.它仅在至少一周使用后发生在(大规模)系统测试环境中.
  4. 该系统建立在内部开发的遗留框架之上,存在许多设计缺陷,无法统计它们.
  5. 没有人深入理解框架.它已被转移到印度的一个人,他几乎没有跟上回复电子邮件.
  6. 我们已经完成了快照堆转储,并得出结论,没有一个组件随着时间的推移而增加.一切都在慢慢增长.
  7. 以上指出了我们的框架是本土的ORM系统,它可以无限制地增加其使用.(这个系统将对象映射到文件?!所以不是真正的ORM)

问题: 帮助您成功捕获企业级应用程序中的泄漏的方法是什么?

java enterprise methodology memory-leaks legacy-code

29
推荐指数
3
解决办法
3万
查看次数

将大型hprof加载到jhat中

我有一个6.5GB的Hprof文件,使用该-XX:-HeapDumpOnOutOfMemoryError选项由64位JVM转储.我把它放在一台16GB的64位机器上,并且我试图将它放入jhat,但它一直在耗尽内存.我试过传递jvm args以获得最小设置,但它拒绝任何最小值,并且在达到最大值之前似乎耗尽了内存.

jvm耗尽内存会使堆积如此之大以至于无法将其加载到具有两倍ram的盒子上,这似乎有点愚蠢.有没有办法让这个运行,或可能摊销分析?

java heap jvm memory-leaks jhat

25
推荐指数
3
解决办法
2万
查看次数

Java:Memory Analyzer Tool(MAT)用法:比较两个heapdump

我正在使用Eclipse + MAT插件.我可以看到一个.hprof文件堆历史记录,我拿了两个我的Java应用程序的快照.我希望当我比较两个堆转储时,我可以确定哪些对象实例增加了很多,以便我可以识别内存泄漏的可能性.

netbean能做到吗?

java profiling

8
推荐指数
2
解决办法
2685
查看次数

如何分析大型堆转储?

如果只能为 JVM 分配 1.5GB,是否有分析大型 Java 堆转储 (2GB) 的工具?我不敢相信转储必须完全加载到内存中才能进行分析...

Eclipse MemoryAnalyzer 失败,IBM 工具也失败。

我现在需要在这里使用命令行工具吗?

java heap-dump

5
推荐指数
1
解决办法
3283
查看次数

如何使用VisualVM打开大堆转储?

我使用VisualVM创建了一个堆转储.生成的.hprof文件大约为6GB.

当我尝试在VisualVM中加载文件时,它会被卡在50%.卡住时,我正在使用的计算机上似乎没有消耗额外的资源.CPU很安静,只有大约一半的可用内存在使用,并且没有报告任何IO.

jvisualvm:坚持"加载堆转储"屏幕问一个类似的问题,但唯一的答案建议.hprof通过VisualVM 创建文件(我已经做过).

是否需要使用任何特殊设置来打开此大小的堆转储?

java visualvm

5
推荐指数
1
解决办法
8785
查看次数

Eclipse MAT 解析 11GB 堆转储 - 内存不足。无法解析堆转储

我试图使用 Eclipse MAT 解析 11GB 堆转储,但出现以下错误

  An internal error occurred during: "Parsing heap dump" 
Run Code Online (Sandbox Code Playgroud)

我认为 MAT 无法解析如此巨大的堆转储。我阅读了一些帖子并将 VM 配置增加到转储大小的 80% 以上。以下是我的虚拟机配置

      -vmargs -Xms8192m -Xmx10240m 
Run Code Online (Sandbox Code Playgroud)

我仍然无法加载转储。我尝试使用 ParseHeapDump.bat 没有任何变化......

eclipse eclipse-memory-analyzer

4
推荐指数
2
解决办法
1万
查看次数