导致OOM的线程的堆栈跟踪

时间:2011-07-27 21:43:46

标签: java profiling out-of-memory hprof

我有一个java应用程序,它为堆空间获取OutOfMemoryError。我启用了-XX:HeapDumpOnOutOfMemoryError,并生成了hprof文件。

然而,转储显示堆中存在足够的空间,permgen等。我相信这可能是单个请求大量内存(例如,1 GB阵列)的原因,这会失败并且因此不会出现在转储中。

基本上我想看到引发OOM的线程的堆栈在OOM被抛出的位置。

这可能来自hprof转储吗?

1 个答案:

答案 0 :(得分:3)

它不在转储中,因为它位于OutOfMemoryError中。如果您设法捕获并打印该错误的堆栈跟踪,它将告知它发生的位置。