当前位置: 首页 > 面试题库 >

Java VisualVM在OOME上启用堆转储

郏扬
2023-03-14
问题内容

根据文档,当应用程序遇到OutOfMemoryException时,可以自动进行堆转储。
经过OutOfMemoryException过程只是从左侧菜单中消失。
功能如何在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选项


 类似资料:
  • 问题内容: 我知道JVM参数。我也知道,这将要求堆转储。 问题: 如何确保我首先进行完整的堆转储, 然后 在转储完成后强制重新启动(或终止)?是我最好的选择吗? 问题答案: JVM将首先转储堆,然后执行OnOutOfMemoryError命令(证明)。

  • 我们在日志中看到了OutOfMemoryExceptions,它们似乎与java堆提交大小从~1G增长到~2.4G一致。尽管有错误消息,但堆空间似乎没有用完。除了抛出异常(和生成的堆转储)之外,调整大小似乎最终会成功,应用程序继续运行,没有任何问题(堆提交大小约2.4G)。 下面是日志输出的一个示例: 请注意,在OOME之前,提交的堆总数在1GB和2.4GB之间振荡。我们可以看到,它之前非常稳定在

  • 问题内容: 我在标准Windows命令窗口中有一个正在运行的Java进程。即我已经运行’cmd’并在java -jar中键入… 我需要尽可能获得所有线程的完整堆栈转储。 我记得在Linux下,您可以通过quit命令上的选项将消息发送到JVM。 在此文件中为太阳状态 若要在Windows 95或Windows NT平台上生成堆栈跟踪,请在运行Java程序的窗口中输入键序列,或单击窗口上的“关闭”按钮

  • 问题内容: 任何人都可以用C,C ++和Java清楚地解释一下。什么都在堆栈上,什么都在堆上以及何时分配。 我所知道的, 每个函数调用的所有局部变量(无论是基元,指针还是引用变量)都在新的堆栈框架上。 使用new或malloc创建的所有内容都会进入堆。 我对几件事感到困惑。 是在堆上创建的对象成员的引用/基元是否也存储在堆上? 以及在每个框架中递归创建的方法的那些本地成员呢?它们都在堆栈上吗?如果

  • 问题内容: 我正在尝试让HTTPS在node.express.js上工作,但我无法弄清楚。 这是我的代码。 当我运行它时,它似乎仅响应HTTP请求。 我写了简单的基于香草的HTTPS应用程序: 当我运行此应用程序时,它 确实 响应HTTPS请求。请注意,我认为fs结果上的toString()并不重要,因为我使用了两者的组合,但仍然没有es bueno。 编辑添加: 对于生产系统,最好使用Nginx

  • 问题内容: 我有一个UIViewController,我想在不同情况下禁用或启用屏幕旋转 例: 我怎样才能做到这一点? 问题答案: 我有答案。在上,如果您旋转设备,按下ViewController等,则始终调用此函数 迅速 更新 3/4 是自定义参数。 如何使用: 在Appdelegate中: 在ViewController中: 调用方法ViewDidLoad或viewWillAppear时。我们