是否有工具来分析大型Java堆转储而不加载完整的hprof文件?

我使用Eclipse MAT来分析hprof文件。 这是非常好的但是如果你有2Gb堆转储,那么你需要运行具有2Gb +堆大小的MAT本身才能加载完整的堆转储。

我想知道是否有人知道一个工具可以分析2Gb hprof文件而不使用那么多的内存本身(例如它不加载完整的文件,但不知何故走过它)? 如果在客户服务器上生成hprof文件,这将非常有用,因为我可以在服务器上运行某些分析,而不是尝试通过VPN复制2Gb文件。

hprof文件的格式在没有完全加载的情况下无法正常工作,然后再应用一些交叉引用。

但是,您可以通过使用JDK包中包含的jmapjstack和visualvm来跳过hprof转储以从正在运行的VM获取基本信息。 例如,典型的内存泄漏应该从jmap堆直方图中可见,因为您可以通过查看特定类的实例数来猜测生成或保留对象的位置。

最新版本的YourKit比以前更好地处理大堆转储。 我已经取得了很大的成功,并强烈推荐它。 很久以前,Virag Saksena有一个名为Auptyma的工具,但看起来它可能已经被Oracle收购了。