当前位置:  开发笔记 > 编程语言 > 正文

如何在Java中查看堆中的内容?

如何解决《如何在Java中查看堆中的内容?》经验,为你挑选了2个好方法。

我设法在我正在开发的java应用程序中获得内存"泄漏".运行我的JUnit测试套件时,我会随机出现内存异常(java.lang.OutOfMemoryError).

我可以使用哪些工具来检查我的java应用程序的堆,以查看我的所有堆的使用情况,以便我可以找出什么是保持对应该能够被垃圾收集的对象的引用.



1> Tom..:

VisualVM包含在最新版本的Java中.您可以使用它来创建堆转储,并查看其中的对象.

或者,您也可以使用jmap(在jdk/bin目录中)创建一个heapdump命令:

jmap -dump:format=b,file=heap.bin 

您甚至可以使用它来获得所有对象的快速直方图

jmap -histo 

我可以推荐Eclipse Memory Analyzer(http://eclipse.org/mat)来进行堆转储的高级分析.它可以让您找出某个对象或一组对象的确切原因.这是一篇博客文章,向您展示了Memory Analyzer可以做什么:http://dev.eclipse.org/blogs/memoryanalyzer/2008/05/27/automated-heap-dump-analysis-finding-memory-leaks-with-one-点击/



2> André..:

如果您需要免费的东西,请尝试使用VisualVM

从项目的描述:

VisualVM是一个集成命令行JDK工具和轻量级分析功能的可视化工具.专为开发和生产时间使用而设计.

推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有