我第一次查看NetBeans中的剖析器,今天早上我注意到我有超過1700代倖存下來的代表通過Monitor Profiler顯示,但恆定的堆大小。在做一些閱讀時,我發現this article討論了使用NetBeans分析器來發現泄漏。爲什麼char []生存了這麼多代,我應該關心嗎?
因此,在遵循文章的建議,我開始了一個內存分析器。在查看結果時,我發現char []佔絕大多數倖存者。目前作爲這篇文章,char []是在22代並且正在計數。
現在一些posts (comment by OldCurmudgeon near the bottom)表明,如果我的堆是穩定的沒有泄漏,yet others說,如果世代持續增長存在。所以我有點困惑,哪個是對的。
所以,我的問題是:
基於下列屏幕截圖我應該進一步調查潛在的內存泄漏?
內存(堆)
存儲器(GC)
直播分配對象
有趣的是,你有任何推薦的資源來閱讀分析? –
我不能說我遇到過任何。我會建議獲得像YourKit這樣的商業分析器的評估版本,以瞭解它有什麼不同。例如它不會使用堆做它的工作,所以它會在堆上產生「噪音」。 –
我會建議分析簡單的程序,你可以瞭解它正在做的所有事情,看看它是如何尋找CPU和內存分析的。這可以幫助您瞭解複雜的應用程序在做什麼(並知道要忽略哪些內容,相當多; –