我们的产品在我们客户的服务器上运行,Windows 上只有一个 JRE(无 JDK)。
我知道我可以通过标志在 OutOfMemoryError 上获得堆转储。
但是,有没有办法主动从 JRE JVM 进程中获取堆转储?
我计划获得一些健康的堆转储,并将它们与在 OutOfMemoryError 上获得的堆转储进行比较。
最好,我应该可以要求客户下载这个工具/实用程序,然后在服务器上运行它以随意获取堆转储。
我尝试了 jvisualvm但是 jvisualvm 不会列出我们的产品 JVM。它只会列出当时运行的一些 JVM,而不是当时运行的所有 JVM。PLUS jvisualvm 非常笨重。
PS:是否有可以在 JVM 主机上执行以转储堆的 3rd 方实用程序?此外,客户此时无法升级 JRE。并且上一个问题的答案都没有被选为答案!
谢谢,