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

熱點內容
網路中常用的傳輸介質 瀏覽:518
文件如何使用 瀏覽:322
同步推密碼找回 瀏覽:865
樂高怎麼才能用電腦編程序 瀏覽:65
本機qq文件為什麼找不到 瀏覽:264
安卓qq空間免升級 瀏覽:490
linux如何刪除模塊驅動程序 瀏覽:193
at89c51c程序 瀏覽:329
怎麼創建word大綱文件 瀏覽:622
裊裊朗誦文件生成器 瀏覽:626
1054件文件是多少gb 瀏覽:371
高州禁養區內能養豬多少頭的文件 瀏覽:927
win8ico文件 瀏覽:949
仁和數控怎麼編程 瀏覽:381
項目文件夾圖片 瀏覽:87
怎麼在東芝電視安裝app 瀏覽:954
plc顯示數字怎麼編程 瀏覽:439
如何辨別假網站 瀏覽:711
寬頻用別人的賬號密碼 瀏覽:556
新app如何佔有市場 瀏覽:42

友情鏈接