1. 程式人生 > >通過介面獲取大量資料,記憶體溢位的問題

通過介面獲取大量資料,記憶體溢位的問題

今天一個網友問了我一個問題:

需要給這個介面中寫義工xml串(4w條),人家介面返回0或者1
問題是:5千條正常傳送,1w條就報記憶體溢位 . 報java.lang.OutOfMemoryError: Java heap space 錯誤.

建議解決方法:

1.設OutOfMemory的異常斷點,看出錯時jvm裡的堆疊情況.

2.增大記憶體.(可是他說記憶體是2G的,伺服器記憶體8G,依舊報錯)

3.分頁給資料.(可是他說不行,必須一次性給1W條以上的資料)

真心的建議還是從優化程式的設計入手.解決根本問題.最終他還是採納了我的建議.

可能性:

a.有和全域性的List在整個抽取中不被釋放;


b.日誌檔案不是批次寫入,而時所有都結束後一次寫入,無論總檔案有多大. 

問題就好比我們一頓飯多次點沒有關係,天天這麼吃就會張胖一樣. 
所以程式中特別是全域性或是static的東西要很是留意.