java - 导致OOM的线程的堆栈跟踪

我有一个Java应用程序正在获取OutOfMemoryError,用于堆空间。我已启用-XX:HeapDumpOnOutOfMemoryError,并具有生成的hprof文件。

但是,转储表明堆,permgen等中还有足够的空间。我相信这可能是单个请求大量内存(例如1 GB阵列)的原因,该请求失败了,因此不会t出现在转储中。

基本上,我想在引发OOM的那一刻看到导致OOM的线程堆栈。

hprof转储有可能吗?

最佳答案

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

本文翻译自 https://stackoverflow.com/questions/6851603/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 java profiling out-of-memory hprof


相关文章:

java - Java不释放带有finalize()覆盖的对象

c++ - gprof vs cachegrind profiles

c# - 运行测试时特定计算机上的OutOfMemoryException

c++ - 绘制线程上下文切换的工具

c++ - 在free()中:错误:垃圾指针,太高而无法理解分段错误:11(核心已转储)gprof

java - 读取file到byte []数组时的java.lang.OutOfMemoryError

java - java.lang.OutOfMemoryError即使很多

java - Java新手:10000000000中i和j之间的位是什么

java - SWT Program.launch邮件客户端

java - 如何使用构建器模拟内部变量