看板 java 關於我們 聯絡資訊
你的程式有memory leak,也就是說程式跑越久memory就越用越多, 而且garbage collection之後也不會下降,最後就是出現outofmemory exception 這種情況短期治標是加大memory(-Xmx多少m),長期治本當然是要看哪裡有memory leak,也就是物件越漲越大,reference的物件越來越多,而沒有從memory中releas e掉。雖然java 有garbage collection,但是有reference到的物件是不會被collect的 ,你還是要在物件用完後把所有指向他的變數設成null。這種問題很tricky,我在公司 寫測試系統的後台,一半的時間都是在抓這個(我們的客戶都很大,跑一次測試都要 一兩天,有memory leak一下就會被發現 .> <) 您沒有貼出code,不過我猜大概是待處理queue越漲越大,您可能要設計一個機制定期或 當queue漲到一定大小的時候作清除或是儲存到cache的動作(我門公司的產品是寫到 file裡面)。 ※ 引述《leifjason (畢業版在哪裡阿??)》之銘言: : 我的linux是ubuntu 7.04 desktop版本 : 再執行一各接收封包的java程式時(大概6-7小時就當了) : 出現了以下訊息 : Exception in thread 24"Thread-6" java.lang.OutOfMemory Error:java heap space : 想請教這是啥意思..記憶體不夠還是啥空間不夠? : 問題可能在code的啥地方呢.給的buffer不夠大嗎..還是傳送與接收封包 : 的速度差太多..在queue就掛點了 : 請各位高手幫幫我感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 76.111.69.123 ※ 編輯: willieliao 來自: 76.111.69.123 (11/24 15:59)
dwi2:推一下這篇!我之前也有遇過這種問題 11/24 20:18
slalala:不知道可否請您分享 讓新手注意如何建少記體用量的技巧呢? 11/24 22:53
slalala:因為我寫的批次處理的程式 都還是會使記憶體用量偏大 11/24 22:55
slalala:除非縮視窗才會釋放些空間應該有些地方觀念上寫的不夠嚴謹 11/24 22:56