1

我搜索了它,但在应用程序终止后没有找到任何方法来获取堆转储。

从 eclipse 我触发了使用 eclipse 插件开发创建新项目的过程。在代码级别,我有两种创建新项目的方法。我想比较这两种方法。

我使用 JVsualVm 来分析在创建新项目生成过程中生成的数据。

当我的进程以执行结束时,我想对该正在运行的应用程序进行堆转储。

但问题是运行进程停止后,它正在从 JvisulaVM 的应用程序视图中删除,我无法对其进行堆转储。

那么有什么方法可以从 JVisualVm 中获取已停止应用程序的堆转储,因为我仍然打开了该正在运行的应用程序的选项卡,但该应用程序已从应用程序视图树中删除。

4

3 回答 3

1

您可以在应用程序结束时以编程方式创建它: https ://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java

好的,这还不是结束,但可能足以满足您的需求。

于 2013-01-07T11:12:07.487 回答
1

这根本不可能。应用程序终止后,它的内存,包括堆,都消失了。

于 2013-01-07T11:07:19.053 回答
0

甚至我也尝试从 JVisualVM 获取我创建的 MBean 的堆详细信息。

我知道一旦应用程序执行完成,我们就无法从中取回详细信息。

[已编辑]

当然,该选项卡仍保留在 JVisualVM 中,它们无法处理。

于 2013-01-07T11:10:02.897 回答