gpt4 book ai didi

java - JVisualvm:应用程序终止后如何进行堆转储?

转载 作者:行者123 更新时间:2023-11-30 04:32:56 26 4
gpt4 key购买 nike

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

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

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

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

但问题是运行进程停止后,它会从 JvisulaVM 的应用程序 View 中删除,我无法获取它的堆转储。

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

最佳答案

您可以在应用程序结束时以编程方式创建它: https://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java(http://web.archive.org/web/20170118001056/https://blogs.oracle.com/sundararajan/entry/programmatically_dumping_heap_from_java)

好吧,这并不完全是结束,但也许足以满足您的需求。

这是从上面的帖子简化的代码:

static void dumpHeap(String fileName, Boolean live) throws java.io.IOException {
java.lang.management.ManagementFactory.newPlatformMXBeanProxy(
java.lang.management.ManagementFactory.getPlatformMBeanServer(),
"com.sun.management:type=HotSpotDiagnostic",
com.sun.management.HotSpotDiagnosticMXBean.class
).dumpHeap(fileName, live);
}

关于java - JVisualvm:应用程序终止后如何进行堆转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14194571/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com