Re: [問題] 請教在linux跑的java錯誤訊息

看板java作者 (Willie Liao)時間18年前 (2007/11/24 15:57), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/2 (看更多)
你的程式有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)

11/24 20:18, , 1F
推一下這篇!我之前也有遇過這種問題
11/24 20:18, 1F

11/24 22:53, , 2F
不知道可否請您分享 讓新手注意如何建少記體用量的技巧呢?
11/24 22:53, 2F

11/24 22:55, , 3F
因為我寫的批次處理的程式 都還是會使記憶體用量偏大
11/24 22:55, 3F

11/24 22:56, , 4F
除非縮視窗才會釋放些空間應該有些地方觀念上寫的不夠嚴謹
11/24 22:56, 4F
文章代碼(AID): #17Hzc5MD (java)
文章代碼(AID): #17Hzc5MD (java)