gpt4 book ai didi

java - 如何分析 JVM 崩溃时生成的大型核心转储

转载 作者:搜寻专家 更新时间:2023-11-01 03:18:33 25 4
gpt4 key购买 nike

有一天,我使用 Java 的 Web 应用程序崩溃并生成了一个大的核心转储 (5.5GB)。我尝试使用 IBM Thread and Monitor Dump Analyzer for Java分析这个核心转储,但是在读取核心转储时,控制台说:

Exception in thread "Thread-0" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:569)
at java.lang.StringBuffer.append(StringBuffer.java:369)
at java.io.BufferedReader.readLine(BufferedReader.java:370)
at java.io.BufferedReader.readLine(BufferedReader.java:389)
at com.ibm.jinwoo.thread.FileTask.processThreadDump(FileTask.java:1858)
at com.ibm.jinwoo.thread.FileTask$ActualTask.<init>(FileTask.java:215)
at com.ibm.jinwoo.thread.FileTask$1.construct(FileTask.java:1368)
at com.ibm.jinwoo.thread.ThreadHandler$1.run(ThreadHandler.java:31)
at java.lang.Thread.run(Thread.java:745)

看来核心文件太大了,用这个工具分析不了。使用选项 -Xmx10g 增加堆大小不起作用。

用什么工具可以分析这么大的核心文件?


更新于 2016-08-17 13:07:我尝试使用 Eclipse MAT 工具,但在尝试读取转储文件时遇到以下错误。

Error opening heap dump 'jvm-core.13074'. Check the error log for further details.
Error opening heap dump 'jvm-core.13074'. Check the error log for further details.
Not a HPROF heap dump (java.io.IOException)
Not a HPROF heap dump

我是否需要进行某种预处理或其他操作以使转储文件可供 Eclipse MAT 工具读取?

最佳答案

我在 Eclipse MAT tool 上取得了巨大的成功.您还可以像在 Eclipse 中一样,通过更改其安装文件夹中的 .ini 文件来调整其堆。但在加载堆转储之前,请确保您的 PC 上有足够的可用 RAM。

关于java - 如何分析 JVM 崩溃时生成的大型核心转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38987073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com