Java VisualVM在OOME上启用堆转储

根据文档,当应用程序遇到OutOfMemoryException时,可以自动进行堆转储。
OutOfMemoryException过程刚刚从左侧菜单中消失。
这个function在VisualVM中如何工作?

谢谢。


C:\ work \ temp> java -XX:HeapDumpPath = c:/work/temp/file.hprof -XX:+ HeapDumpOnOutOfMemoryError -jar example.jar

据我所知,JVisualVM中的该选项相当于将-XX:+HeapDumpOnOutOfMemoryError指定为JVM参数。 这会导致JVM在遇到OutOfMemoryError时创建堆转储文件。 然后可以将此文件加载到JVisualVM(或分析器)并在那里进行分析。 存储文件的目录由-XX:HeapDumpPath参数定义。

也可以看看:

  • 带有HotSpot VM的Java SE 6故障排除指南
  • Java HotSpot VM选项
  • StackOverflow:使用HeapDumpOnOutOfMemoryError参数

似乎应用程序刚刚退出OOM。 在这种情况下,您必须使用特殊的-XX参数运行您的应用程序。 请参阅JVM文档中的 “dump”参数。 应用程序死后,您可以检查工具中的转储。