我在远程Debian机器上有一个大约70GB的Java堆转储文件,但是我无法在本地使用MAT进行分析。尽管我可以获得HTML页面的概述和可疑泄漏报告,但它们很简洁,并且其中的对象href指向了不存在的内容(也许MAT并不是要创建实际链接而只是用于样式目的)。
然而,有没有办法完全分析这么大的堆转储文件呢?
jhat
实用程序。jhat -J-Xmx32g -port 7000 <PATH_TO_HEAPDUMP>
然后在浏览器中访问:
http://<IP>:7000
有很多关于OQL的教程,这里是其中之一
你可以使用无界面的MAT分析器脚本来检查顶级组件(使用org.eclipse.mat.api:top_components),这可能会有所帮助。
如果泄漏嫌疑不足以说明问题,那么顶级组件可以提供洞察力,了解哪个bean占用了更多的空间。因此,您可以检查与其相关的方法。