java分析工具(memory analyzer)是款功能非常强大的java监控分析工具;这款软件是作为跨平台的开源工具进行使用的,软件可以快速的进行分析您的内存问题,也可以进行监控整个的Java 应用程序的姿态和行为,并且还可以进行读取,使您的应用程序这运行的时候可以支持让Java 运行时环境的生产,包括了转储文件快照等,还可以进行发现或者分析调试的代码等无法进行修复的问题!
软件功能
您不仅可以用它来分析内存问题
也可以用来监控整个 Java 应用程序的状态和行为
通过读取应用程序运行时由 Java 运行时环境生成的转储文件快照
Memory Analyzer 使您能够分析那些调试代码可能无法发现的复杂问题
软件特色
找到最大的对象,因为MAT提供合理的累积大小(保留大小)
探索对象图,包括入站和出站引用
计算从垃圾收集器根到有趣对象的路径
找到内存浪费,像冗余的String对象,空集合对象等...
使用方法
获取堆转储
内存分析器使用堆转储。 这样的堆转储包含有关在给定时间点活动的所有Java对象的信息。 所有当前的Java虚拟机都可以写堆heap转储,但确切的步骤取决于供应商,版本和操作系统。 在“获取堆转储”部分中了解更多信息。
如果您在Eclipse帮助中心内查看此页面,请打开示例堆转储。
为了本教程的目的,我们在Windows上使用Java 6和JConsole。 使用Java 6启动应用程序,然后启动 /bin/jconsole.exe并选择正在运行的应用程序(在本例中为Eclipse):
然后,从com.sun.management.HotSpotDiagnostic MBean中选择操作dumpHeap。 第一个参数p0是堆转储文件的完整路径。 确保你给它的文件扩展名.hprof。 第二个参数p1应该保持为true,因为我们只对活对象感兴趣。
通过文件>打开堆转储...打开堆转储,以查看概述页面。
在右边,你会发现转储的大小和类,对象和类加载器的数量。
右下角,饼图给出了转储中最大对象的印象。 将鼠标移到切片上,可以在左侧的对象检查器中查看对象的详细信息。 单击任何切片以向下钻取,并按照例如输出引用。
直方图
从工具栏中选择直方图,列出每个类的实例数,浅的大小和保留的大小。
内存分析器默认显示单个对象的保留大小。 然而,需要计算一组对象的保留大小 - 在这种情况下是特定类的所有实例。
要对所有行的保留大小进行近似,请从工具栏中选择计算保留大小图标。 或者,选择几个行并使用上下文菜单。
使用上下文菜单,可以向下钻取所选行所表示的对象集。 例如,您可以使用传出或传入引用列出对象。 或者通过属性的值将对象分组。 或者按照大小对集合进行分组。 或或或...
使内存分析器如此强大的一件事是,可以对任何对象集合运行任何操作。 只需向下钻取并按照您需要的方式切割您的对象。
∨ 展开