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

熱點內容
怎麼查看蘋果7的文件 瀏覽:773
phppost文件 瀏覽:972
cad能跨版本打開文件嗎 瀏覽:400
reg52h頭文件下載 瀏覽:203
jspweb簡單源代碼 瀏覽:167
u盤文件夾亂碼無法刪除 瀏覽:339
有哪些PLC編程入門經典教材 瀏覽:880
linux掛載ufs文件系統 瀏覽:650
天龍3wpe代碼 瀏覽:488
華為榮耀4c升級安卓60 瀏覽:371
cad能不能導入jdk文件 瀏覽:427
學編程到什麼水平算是入門 瀏覽:545
怎麼讓psd文件變小 瀏覽:403
ai儲存源文件 瀏覽:112
解鎖appleid生日忘了怎麼辦 瀏覽:469
朋友圈欄目裡面到底能裝多少文件 瀏覽:85
文件格式後綴怎麼顯示 瀏覽:680
蘋果電腦上安裝win7u盤 瀏覽:416
網站的欄目及其功能是什麼意思 瀏覽:606
新版本安妮 瀏覽:9

友情鏈接