一個對象,我的工作對Spring Web MVC框架和最近遇到java.lang.OutOfMemoryError:Java堆空間。何時取消引用的Java Web MVC
所以,我正在閱讀有關它,我所做的主要錯誤是,我不推定使用的對象。所以GC不會清理大量的內存。
現在的問題是,當取消對它的引用。
這裏是基本向外流動:
From front end user sends a request
server calls a library with the users request
library returns it a big chunk of array of results.
server forwards it to front end.
現在直到此時我不能解除引用結果數組作爲我需要的結果對象。我對麼 ? 因此,當用戶發送新的請求時,我應該清理結果數組並用新請求調用庫。
另外我用-XX:+ HeapDumpOnOutOfMemoryError獲取轉儲文件。但我沒有看到項目文件夾中的轉儲文件。在日誌中我看到創建了轉儲文件。有沒有人遇到這種情況。
你在哪裏保持結果數組?你把它放在'Session'中,還是一些可比較的內存緩存?因爲如果不是的話,只要請求完成,它就會自動成爲垃圾收集的候選對象。 – aroth 2013-02-12 04:32:14
您是否嘗試過增加堆大小? -Xmx3g應該給一束呼吸室(3G = 3場音樂會) – 2013-02-12 05:06:52