導航:首頁 > 編程語言 > 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內存泄露相關的資料

熱點內容
大臉app安卓下載 瀏覽:439
怎麼休改文件名 瀏覽:989
cdr導出圖片不顯示文件名 瀏覽:761
pcdmis如何離線編程 瀏覽:201
微信推文插入文件 瀏覽:844
生產文件櫃圖片 瀏覽:244
如何設置微信數據增加 瀏覽:95
excel文件不再增大 瀏覽:613
ug編程刀路怎麼復制不用滑鼠選取 瀏覽:97
excel文件打開擴展名錯誤 瀏覽:10
阿里巴巴怎麼做數據包 瀏覽:442
無線網路連接一直顯示未連接 瀏覽:25
windows7如何自動激活工具下載 瀏覽:57
天語救磚工具 瀏覽:839
網路體育課程有哪些 瀏覽:19
蘋果微信怎麼查看文件 瀏覽:165
安卓nba2k14面補替換 瀏覽:450
路由器密碼定時換 瀏覽:626
aicc恢復文件在哪裡 瀏覽:167
怎麼查無線網路屬性 瀏覽:874

友情鏈接