我使用以下参数启动我的java代码(Vista中的1.6.0_16)-XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = .. / logs.我运行代码,我可以在日志中看到有两个OOM.
我知道的第一个因为我可以在stdout中看到正在创建hprof文件:
java.lang.OutOfMemoryError: Java heap space
Dumping heap to ../logs\java_pid4604.hprof ...
Heap dump file created [37351818 bytes in 1.635 secs]
然后,在代码结束时我得到另一个OOM,我捕获了这个,但是我没有创建第二个hprof文件.谁知道为什么?是因为我抓住了OOM例外吗?
解决方法:
内存不足会在第一个错误上生成一个转储文件.如果你想获得更多,你可以尝试jmap或在jvm(版本6)上保留jconsole然后你可以在一切崩溃后,即在早上从jconsole(或你选择的分析工具)创建自己的转储.
标签:java,hprof
来源: https://codeday.me/bug/20190527/1160138.html