我有一个 Java 应用程序,它正在获取 OutOfMemoryError,用于堆空间。我启用了 -XX:HeapDumpOnOutOfMemoryError,并获得了生成的 hprof 文件。
然而,转储显示堆、permgen 等中还有大量空间。我相信这可能是单个请求大量内存(例如 1 GB 数组)的原因,该请求失败,因此不会t 出现在转储中。
基本上,我想在抛出 OOM 时查看导致 OOM 的线程堆栈。
从 hprof 转储中可以实现吗?
我有一个 Java 应用程序,它正在获取 OutOfMemoryError,用于堆空间。我启用了 -XX:HeapDumpOnOutOfMemoryError,并获得了生成的 hprof 文件。
然而,转储显示堆、permgen 等中还有大量空间。我相信这可能是单个请求大量内存(例如 1 GB 数组)的原因,该请求失败,因此不会t 出现在转储中。
基本上,我想在抛出 OOM 时查看导致 OOM 的线程堆栈。
从 hprof 转储中可以实现吗?