国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

巧用GC

2019-11-17 06:07:59
字體:
供稿:網(wǎng)友

用過java的人都知道gc()方法吧(System.gc();)即使你沒使用過,也該聽說過吧它的用途吧。在j2se或j2ee中也許你永遠(yuǎn)也不會(huì)用到它,不過在j2me則是另一回事了。很多人并不贊成直接調(diào)用它,我剛開始使用j2me時(shí)也沒有考慮使用它,不過隨著內(nèi)存的消耗,我開始關(guān)注它了。幾番周折,我發(fā)現(xiàn)gc方法的卻很有用,不過在使用他的時(shí)候也要小心,不然會(huì)適得其反。下面我就結(jié)合我在工作中碰到的問題談?wù)刧c的一些使用技巧(僅供參考)

1.  在將要載入大量資源前調(diào)用gc();
原因:由于有大量的資源載入,可能會(huì)出現(xiàn)內(nèi)存暫時(shí)不足(這主要是內(nèi)存碎片過多造成的),此時(shí)系統(tǒng)將自動(dòng)調(diào)用垃圾回收器,假如資源過大(當(dāng)然要小于系統(tǒng)的當(dāng)前可用內(nèi)存,包括還沒有回收的內(nèi)存)由于垃圾回收器可能還沒有及時(shí)完成垃圾的回收的工作,而資源又要載入,就會(huì)造成可用內(nèi)存無法滿足資源的載入,因此會(huì)出現(xiàn)j2me程序停止響應(yīng)或干脆報(bào)告內(nèi)存不足。因此早期調(diào)用gc(),可以相對(duì)地避免這種情況的發(fā)生。

2.  不要連續(xù)使用gc();
原因:垃圾收集器本身就是一個(gè)耗資源的東東,連續(xù)的使用反而可能會(huì)消耗內(nèi)存。

3.  以上兩點(diǎn)只是直觀的感覺,在實(shí)際操作中還要結(jié)合Runtime對(duì)象的幫助。
Runtime對(duì)象中有幾個(gè)比較有用的方法:
               long freeMemory() 返回當(dāng)前可用的內(nèi)存數(shù)
               long totalMemory() 返回系統(tǒng)得內(nèi)存總量
假如你想在程序的一個(gè)地方加入gc(),但你不知道加在這個(gè)地方有沒有效果可以使用以下方法:
               System.out.PRintln(Runtime.getRuntime().freeMemory());
               System.gc();
               System.out.println(Runtime.getRuntime().freeMemory());
這樣,你就可以看出值不值得把gc();放在這里了。^-^

也許還有很多使用gc的技巧,假如大家發(fā)現(xiàn)有更好的辦法請(qǐng)不要忘了通知我呀。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 东莞市| 泰顺县| 宁陕县| 观塘区| 五华县| 电白县| 莱阳市| 麻阳| 麻城市| 迁安市| 日土县| 邛崃市| 阿城市| 蛟河市| 台东县| 湘阴县| 攀枝花市| 建始县| 吉首市| 恩平市| 永善县| 门源| 朝阳区| 梁山县| 塘沽区| 大足县| 长岛县| 威宁| 昭通市| 罗江县| 深水埗区| 沐川县| 禹城市| 会理县| 彭州市| 广西| 湖北省| 通许县| 邛崃市| 铜陵市| 伊通|