我在Oracle iPlanet Web服務器7中部署了一個Web應用程序。網站在Internet中被主動使用。java中導致內存泄漏的原因
部署之後,堆大小不斷增加,並在2或3周後引發OutOfMemory錯誤。
所以我開始使用分析工具。我不熟悉堆轉儲。所有我注意到char [],hashmap和String對象在堆中佔據太多。我怎麼能注意到什麼導致堆轉儲內存泄漏?我對我的內存泄漏的抨擊;
我在log4j中使用log4j進行了大量日誌記錄以保存log.txt文件。它有問題嗎?
刪除非活動會話可能是錯誤嗎?
一些靜態值,如城市,性別類型存儲在靜態哈希表?
我有一個登錄機制,但沒有註銷機制。當網站再次打開時,需要新的登錄。 (愚蠢但尚未實現。)?
全部?
你對他們有什麼想法嗎?或者你可以添加另一個關於內存泄漏的假設嗎?
是否有東西擺脫陳舊的會議?或者,會話是存儲在磁盤上的,而當應用程序沒有處理請求時,不會在內存中保留或引用會話? – cHao 2011-06-08 19:52:10
嗨cHao,我有一個偵聽器,可以刪除不活動的會話。它不應該是一個問題。至少是最不重要的一個。 – asyard 2011-06-08 19:57:58