我有一個可觀的Java應用程序,可以創建描述圖形的複雜數據結構,從原始時間戳數據點開始並顯示繪圖,分析它等。試圖找到我的java swing代碼中的內存泄漏
當我嘗試處理一系列這些繪圖時,我清楚地以JScrollPane的形式掛在內存上,用於保存繪圖,但我無法弄清楚原因。保存滾動窗格的變量會被重新分配,每個新文件都會被加載,但是我注意到RepaintManager正在維護其invalidComponents列表中先前顯示的窗格的列表。這看起來好像掛在每個圖形的存儲器上,不久我就有1GB的內存在使用,當我連續處理文件時,應該永遠不會有超過一個圖形的內存使用。
我得到了內存轉儲,並用Eclipse內存分析器和YourKit進行了分析。
這就是我認爲的鐵證Eclipse的內存分析器顯示:
花了相當長的一段試圖深入到這個問題。我非常感謝任何關於我的錯誤可能在哪裏或如何解決問題的建議。
我意識到如果不能深入研究代碼就很難分辨,但如果有關於在哪裏尋找的一般建議/注意事項,那就太好了。
考慮提供一個[runnable示例](https://stackoverflow.com/help/mcve),它演示了您的問題。這不是代碼轉儲,而是您正在做的事情的一個例子,它突出了您遇到的問題。這將導致更少的混淆和更好的響應 – MadProgrammer
您是否刪除舊的滾動條?可能不是創建新的,而應該簡單地重用現有的並改變viewportView組件 – MadProgrammer