通過接口獲取大量數據,內存溢出的問題

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

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

建議解決方法:

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

2.增大內存.(可是他說內存是2G的,服務器內存8G,依舊報錯)

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

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


可能性:

a.有和全局的List在整個抽取中不被釋放;
b.日誌文件不是批次寫入,而時所有都結束後一次寫入,無論總文件有多大. 

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







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章