java內(nèi)存泄露模擬及分析解決方法

java內(nèi)存泄露模擬及分析解決方法

ID:13209642

大?。?65.41 KB

頁數(shù):9頁

時(shí)間:2018-07-21

java內(nèi)存泄露模擬及分析解決方法_第1頁
java內(nèi)存泄露模擬及分析解決方法_第2頁
java內(nèi)存泄露模擬及分析解決方法_第3頁
java內(nèi)存泄露模擬及分析解決方法_第4頁
java內(nèi)存泄露模擬及分析解決方法_第5頁
資源描述:

《java內(nèi)存泄露模擬及分析解決方法》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、e-mail:derwee@qq.comderweeJava內(nèi)存泄露模擬及分析解決方法1.1實(shí)踐目標(biāo):1、使用JAVA代碼實(shí)現(xiàn)模擬內(nèi)存溢出2、分析JDK內(nèi)存溢出的原因3、總結(jié)存在bug的JAVA編碼實(shí)踐4、總結(jié)JVM優(yōu)化的方法1.2模擬內(nèi)存溢出:為了方便模擬內(nèi)存,特意把JVM的內(nèi)存參數(shù)指定為更?。ㄎ业谋颈緝?nèi)存是8G的)。修改eclipse參數(shù)文件eclipse.ini調(diào)用JVM參數(shù):-vmargs-Xms40m(原始是-Xms40m)-Xmx100m(原始是-Xmx384m)演示JAVA小程序?qū)崿F(xiàn)原理:使用集合類對(duì)象裝載大量的Persion對(duì)象,每次把new出來的對(duì)

2、象加入集合類對(duì)象后,更改對(duì)象的屬性,再從集合類對(duì)象中刪除該對(duì)象。會(huì)出現(xiàn)該刪除的對(duì)象沒有被刪掉,Persion類對(duì)象不斷占用內(nèi)存,導(dǎo)致分配給JVM的內(nèi)存被耗光。packagecom.derwee.collection.memory;importjava.util.*;/****@ClassName:OutOfMemory*@Description:內(nèi)存溢出模擬,提出解決方法*@authoryangdw*@date2012-3-25下午6:58:49*/publicclassOutOfMemory{publicstaticvoidmain(String[]args){C

3、ollectioncollection=newHashSet();for(inti=0;i<900000000;i++){Persionper=newPersion(i,"yangdw");collection.add(per);//把new出來的對(duì)象加到集合里去per.setName("hundsun");//把剛new出來的對(duì)象的名字改為hundsuncollection.remove(per);//把剛加到集合里的對(duì)象刪除//System.gc();//手工調(diào)用垃圾回收器System.out.println("請(qǐng)注意,現(xiàn)在集合對(duì)有persion對(duì)象數(shù)--"+c

4、ollection.size());}}}packagecom.derwee.collection.memory;/****@ClassName:Persion*@Description:TODO(這里用一句話描述這個(gè)類的作用)*@authoryangdw*@date2012-3-25下午8:16:54**/publicclassPersion{publicPersion(intid,Stringname){super();this.id=id;this.name=name;}privateintid;privateStringname;publicintgetId

5、(){returnid;}publicvoidsetId(intid){this.id=id;}publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;}@OverridepublicinthashCode(){finalintprime=31;intresult=1;result=prime*result+id;result=prime*result+((name==null)?0:name.hashCode());returnresult;}@Overridep

6、ublicbooleanequals(Objectobj){if(this==obj)returntrue;if(obj==null)returnfalse;if(getClass()!=obj.getClass())returnfalse;Persionother=(Persion)obj;if(id!=other.id)returnfalse;if(name==null){if(other.name!=null)returnfalse;}elseif(!name.equals(other.name))returnfalse;returntrue;}}使用JDK監(jiān)

7、控程序進(jìn)行監(jiān)控JDK內(nèi)存,線程情況。模擬程序沒有運(yùn)行前的JDK內(nèi)存使用情況:運(yùn)行JAVA模擬程序后出現(xiàn):內(nèi)存溢出錯(cuò)誤:Exceptioninthread"main"java.lang.OutOfMemoryError:Javaheapspaceatjava.util.HashMap.resize(HashMap.java:462)atjava.util.HashMap.addEntry(HashMap.java:755)atjava.util.HashMap.put(HashMap.java:385)atjava.util.HashSet.add(HashSet

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。