2010-04-13 46 views
2

我现在需要什么时候jvm产生hprof转储而不是内存不足的情况。 例如,当CPU使用率很高时,它会产生一个hprof吗? 我看到hprof文件产生,并没有内存不足的情况。JVM何时产生转储,而不是内存不足

+0

您是否尝试过分析hprof数据? – fglez 2010-04-22 13:34:56

回答

0

我不会“自动”产生堆转储只有当内存不足的,如果它被配置为在启动这样做(例如-XX:-HeapDumpOnOutOfMemoryError对于Sun JVM)...

但你也可以发送信号给JVM以请求在solaris上进行转储(例如kill -Quit pid)...

因此,它取决于操作系统和JVM,但可以要求转储。 ..

+0

转储在solaris上,但我有一个70MB转储,其中最大堆大小为1 GB。此外,转储看起来不像内存不足转储。没有人要求转储。 – onur 2010-04-13 11:17:53

0

另外,JVM在本地库抛出一个观点时创建一个核心转储。

+0

我不是指核心转储。我有一个_pid.hprof转储,它是80 mbs,最大堆大小是1 GB。我看不到转储时出现内存不足的情况。必须有别的东西。 – onur 2010-04-16 11:47:18

0

启动应用程序时传递了哪些命令行JVM选项?有许多HPROF选项;有些像cpu=samples,每次JVM退出时都写出一个转储文件。