繁体   English   中英

如何在NetBeans中更好地调查内存泄漏

[英]How can I investigate a memory leak better in NetBeans

我正在写一个网络蜘蛛。 它运行良好,除了似乎有内存泄漏。 该程序将运行正常约15分钟然后它将崩溃。

如果我使用NetBeans中的“配置文件”功能监视它,我可以看到内存随着时间的推移而增加,直到最终我得到一个java.lang.OutOfMemoryError并且程序完全崩溃。

下图显示了一分钟后和15分钟后(在崩溃之前)使用的对象内存的快照。有没有办法告诉这些对象(我的主要罪魁祸首是byte[]char[] )在哪里被创建或者什么仍然引用它们(并因此防止它们被垃圾收集器销毁)?

或者我不知道我在说什么?

替代文字

谢谢,我感谢你的帮助。

您可能正确地按照您的假设,但可能没有使用正确的工具?

我不了解NetBeans,但我知道Yourkit Profiler和JProfiler都是这类分析的强大工具。 你可以走堆并分析“热点”。 这两个工具都有试用许可证,因此您可以试用它们,看看哪一个最适合您。

使用分析器分析内存时,可以打开堆栈跟踪的记录以进行对象分配。

在该模式下运行时,可以右键单击该类并显示创建对象的堆栈跟踪。 这应该给你足够的信息来追踪内存泄漏。

您可能也想阅读这篇文章: http//netbeans.org/community/magazine/html/04/profiler.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM