我搜索了它但在应用程序终止后没有找到任何方法来获取堆转储。
从eclipse开始,我正在触发使用eclipse插件开发创建新项目的过程。在代码级别,我有两种方法来创建新项目。 我想比较两种方法。
我使用JVsualVm来分析在创建新项目的过程中生成的数据。
当我的进程以其执行结束时,我想要对正在运行的应用程序进行堆转储。
但问题是运行后的进程停止,它正从JvisulaVM的应用程序视图中删除,我无法进行堆转储。
所以有没有办法从JVisualVm获取已停止的应用程序的堆转储,因为我仍然打开正在运行的应用程序的选项卡,但应用程序已从应用程序视图树中删除。
答案 0 :(得分:1)
您可以在应用程序结束时以编程方式创建它: https://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java
好的,这不完全是结束,但可能足以满足您的需求。
答案 1 :(得分:0)
这根本不可能。应用程序终止后,它的内存(包括堆)就消失了。
答案 2 :(得分:0)
即使我尝试从JVisualVM获取我创建的MBean的堆细节。
一旦应用程序执行完成,我就知道了,我们无法从中获取详细信息。
[被修改]
当然,标签保留在JVisualVM中,他们没有动态处理。