導航:首頁 > 編程語言 > javavisualvm內存泄露

javavisualvm內存泄露

發布時間:2023-02-03 08:46:29

『壹』 java程序堆內存溢出錯誤如何解決

把eclipse的內存調大一點,在eclipse的目錄下面有一個eclipse.ini文件,打開調一下-XX:MaxPermSize=250m的大小!除了這點以外,如果你的代碼寫的有問題,那就是需要你自己改下代碼的!

『貳』 如何使用VisualVM檢測Java內存泄漏

Java的一個重要優點是通過垃圾收集器(Garbage Collection)自動管理內存的回收,程序員不需要關注它。程序員真的不需要關注內存管理嗎?只要你碰到過OutOfMemoryError你就知道它不是真的。

這里我會展示如何使用VisualVM快速定位內存泄漏。先看下面這段代碼:

importjava.util.List;
importjava.util.ArrayList;

publicclassMemoryLeakDemo{
publicstaticvoidmain(String[]args){
newThread(newMemoryLeak(),"MemoryLeak").start();
}
}

{
publicstaticList<Integer>leakList=newArrayList<Integer>();

publicvoidrun(){
intcount=0;
while(true){
try{
Thread.sleep(3);
}catch(InterruptedExceptione){
}
count++;
Integeri=newInteger(count);
leakList.add(i);
}
}
}

執行下列命令:

java-verbose:gc-XX:+PrintGCDetails-Xmx20mMemoryLeakDemo

等待一段時間後,你會看到:

Exceptioninthread"MemoryLeak"java.lang.OutOfMemoryError:Javaheapspace
atjava.util.Arrays.Of(Arrays.java:3181)
atjava.util.ArrayList.grow(ArrayList.java:261)
atjava.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235)
atjava.util.ArrayList.ensureCapacityInternal(ArrayList.java:227)
atjava.util.ArrayList.add(ArrayList.java:458)
atMemoryLeak.run(MemoryLeakDemo.java:22)
atjava.lang.Thread.run(Thread.java:745)
Heap
PSYoungGentotal3584K,used298K[0x00000000ff980000,0x00000000ffe80000,0x0000000100000000)
edenspace3072K,9%used[0x00000000ff980000,0x00000000ff9ca908,0x00000000ffc80000)
fromspace512K,0%used[0x00000000ffc80000,0x00000000ffc80000,0x00000000ffd00000)
tospace512K,0%used[0x00000000ffe00000,0x00000000ffe00000,0x00000000ffe80000)
ParOldGentotal13824K,used12156K[0x00000000fec00000,0x00000000ff980000,0x00000000ff980000)
objectspace13824K,87%used[0x00000000fec00000,0x00000000ff7df3e8,0x00000000ff980000)
Metaspaceused7993K,capacity8164K,committed8448K,reserved1056768K
classspaceused912K,capacity954K,committed1024K,reserved1048576K

打開VisualVM開始監測MemoryLeakDemo,在Monitor標簽頁我們可以看到實時的程序內存堆的使用情況:

如上圖所示,第1行的Integer對象佔用內存最大

『叄』 java內存檢測工具JProfiler8.0和eclipse memory analyzer不能用。

java 檢測內存還要配置什麼玩意? 直接找到你的JDK安裝目錄 例如:D:\Java\jdk1.6.0_10\bin\
在bin 目錄下找到 jvisualvm.exe ; 打開這個玩意,要什麼都能監控。

『肆』 如何排查Java內存泄露

閱讀全文

與javavisualvm內存泄露相關的資料

熱點內容
蘋果6進水讀不了卡什麼原因 瀏覽:68
網盤文件怎麼提取到筆記軟體里 瀏覽:136
java解析簡單json數據類型 瀏覽:750
008神器破解版使用教程 瀏覽:974
word2007密碼設置 瀏覽:593
iPhone5解鎖密碼格圖案 瀏覽:392
微信文件怎麼填 瀏覽:87
燕十八老師精通mysql視頻教程 瀏覽:255
汽車保養數據怎麼清 瀏覽:629
pdf文件圖像打不開 瀏覽:176
msp430時鍾程序 瀏覽:660
查看sd卡文件系統格式 瀏覽:696
c盤中顯示隱藏文件 瀏覽:951
蘋果升級系統白屏 瀏覽:136
三菱gxplc編程軟體如何使用 瀏覽:710
海康威視手機app怎麼看不了 瀏覽:482
wordpress下載中心插件 瀏覽:402
微信限制字數是多少 瀏覽:20
策劃輸出主要從哪些文件來 瀏覽:174
網路營銷找什麼工作 瀏覽:372

友情鏈接