何时生成堆转储

发布于 2024-12-08 06:20:33 字数 254 浏览 1 评论 0原文

在我的 Java 应用程序中,当我从脚本的 OutputStream 读取数据时,会生成堆转储文件。我确信我的应用程序中存在内存泄漏。但即使生成堆转储后,导致内存泄漏的线程也不会出现。我没有在 run 方法中捕获 Throwable、Exception、Error 等。

我想知道当我没有指定任何特殊的 VM 参数时,何时生成堆转储文件

-XX:+HeapDumpOnOutOfMemoryError

In my Java application a heap dump file gets generated when I read from the OutputStream of a script. I am sure about a memory leak in my application. But even after the heap dump got generated, the thread which is causing the memory leak is not coming out. I am not catching Throwable, Exception, Error etc in the run method.

I want to know when the Heap Dump file will get generated when I have not specified any special VM argument like

-XX:+HeapDumpOnOutOfMemoryError

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倥絔 2024-12-15 06:20:34

AFAIK,只有当您指定该选项时才会自动生成堆转储,至少在 Oracle 的 JVM 中(不知道其他选项,但我怀疑它们会自动生成)。

在大多数情况下,您必须手动触发堆转储生成。

还有一些方法可以以编程方式创建堆转储,但这些方法是 JVM 特定的,并且取决于程序员调用它们的方式和时间。如果使用该选项,那么您必须寻找它,因为它可能在任何地方。

AFAIK, heapdumps are only automatically generated if you specify that option, at least in Oracle's JVM (don't know about the others, but I doubt they do it automatically).

In most cases you have to trigger heap dump generation manually.

There are also ways to programmatically create a heap dump, but those are JVM specific and depend on how and when the programmer calls them. If that option is used then you'd have to look for that as it could be anywhere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文