我使用Eclipse MAT来分析hprof文件。这是非常好的但是如果你有2Gb堆转储,那么你需要运行具有2Gb +堆大小的MAT本身才能加载完整的堆转储。
我想知道是否有人知道一个工具可以分析2Gb hprof文件而不使用那么多内存本身(例如它不加载完整的文件,但不知何故走过它)?如果在客户服务器上生成hprof文件,这将非常有用,因为我可以在服务器上运行某些分析,而不是尝试通过VPN复制2Gb文件。
答案 0 :(得分:3)
hprof文件的格式在没有完全加载的情况下无法正常工作,然后再应用一些交叉引用。
但是,您可以跳过hprof转储,通过使用JDK包中包含的jmap
,jstack
和visualvm
从正在运行的VM获取基本信息。
例如,典型的内存泄漏应该从jmap堆直方图中可见,因为您可以通过查看特定类的实例数来猜测产生或保留对象的位置。
答案 1 :(得分:2)
最新版本的YourKit处理大堆转储比以前好多了。我已经取得了很大的成功,并强烈推荐它。很久以前,Virag Saksena有一个名为Auptyma的工具,但看起来它可能已被甲骨文收购。