簡體   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