繁体   English   中英

从内存中获取哈希映射转储,用于Java进程

[英]Taking dump of hashmap from memory, for a java process

我有一个Java进程已经运行了一个多星期。 在此过程中,我一直在处理一些数据, 并将一些中间结果存储到内存中的哈希图中。

现在,由于代码中的某些错误,我需要停止该过程。 但是,如果我取消了该过程,那么我将丢失哈希图中的数据;下次运行代码时,n将不得不再次对其进行重新处理。

他们是我可以提取内存中存在的哈希图的一种方式吗?

您可以触发内存转储,可以使用各种工具(例如探查器)读取该内存转储。 这很难读,我从未听说有人使用它来重启程序。

重新启动程序不是您事后要做的事情,它需要在您的应用程序中进行设计并经过全面测试。 人们不必担心这个问题的一种方法是使用数据库。 这是因为数据库经过专业设计和测试,可以在不丢失数据的情况下重新启动。

您可以使用Standard JDK附带的JConsole ,也可以使用visualvm附加到已经在运行的进程并触发堆转储。

但是,正如Peter所说,除非您找到可以帮助您的工具,否则实际上阅读此转储将不会很有趣。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM