Re: [問題]監視畫面程式-outOfMemory問題~~

看板java作者 (Alien)時間16年前 (2008/04/17 18:08), 編輯推噓6(600)
留言6則, 5人參與, 最新討論串4/7 (看更多)
看來你做的東西該不會 out of memory 的. 一般來說可能出現的的情況我想到的會有下面 兩類: 1) memory leak: Java 的 memory leak 通常出現在不小心利用的 collection. 比如你一直把東西 add 到 list 沒有 remove. 且看有沒有這種情況. 2) 有時候 memory 使用太多太快, 會有 gc 不及的 情況. 看看有沒有 object instantiation 是能 減少的. 比如說... 假設你每次傳資料要開個 xml builder 來建 xml 的資料, 那麼就不要每次 new 一個 xml builder 出來, 生了一個後就重覆使用它就好. (參看flyweight pattern) 又或者用了 string 的 + operator 做極大量的 string concat 之類. (轉用 stringbuffer/stringbuilder) 又或者有些資源沒有正確 release (開了 file stream 沒有 close 這類) alien -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.155.236.82

04/17 22:00, , 1F
我覺得gc都不太理我...我把物件設成null 為何gc還是不收阿?
04/17 22:00, 1F

04/18 02:31, , 2F
gc並不是你set null之後馬上去收 而是在比較沒事時才去收
04/18 02:31, 2F

04/18 02:33, , 3F
你可以用System.gc();要gc現在去收
04/18 02:33, 3F

04/18 09:25, , 4F
呃... 其實 call System.gc() 也不代表會立刻去收的
04/18 09:25, 4F

04/19 00:45, , 5F
樓上說的是 我有切身之痛
04/19 00:45, 5F

04/19 06:38, , 6F
這篇回的好!推一下。
04/19 06:38, 6F
文章代碼(AID): #181o6tcb (java)
文章代碼(AID): #181o6tcb (java)