我在远程 Debian 机器上有大约 70 GB 的 Java 堆转储,我无法在我的本地机器上使用 MAT 分析它,虽然我可以得到一个概述和可疑泄漏报告作为 HTML 页面,但它们很简短并且那里的对象没有指向任何东西的 href(也许 MAT 并不意味着在那里创建实际链接,而只是为了样式目的)。
但是,有没有办法完全分析那种大小的堆转储?
最佳答案
如果您无法在该服务器上运行 MAT,那么您可能需要运行 jhat
实用程序。
它将在一个端口(您可以覆盖)上运行 Web 服务器,并将提供一个 Web 控制台和称为 OQL(对象查询语言)的查询语言,您可以使用它来分析堆转储。它看起来有点像 SQL。
这是一个例子:
jhat -J-Xmx32g -port 7000 <PATH_TO_HEAPDUMP>
然后在浏览器中访问:
http://<IP>:7000
关于OQL的教程很多,here就是其中之一
关于java - 分析远程大型堆转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57841372/