导航:首页 > 编程语言 > 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内存泄露相关的资料

热点内容
刷子公司网站怎么做 浏览:272
86版本艾尔文测试 浏览:714
深宫曲文件夹是哪个 浏览:618
苹果u盘修复工具哪个好用 浏览:124
微信动态表情包搞笑 浏览:436
可以去哪里找编程老师问问题 浏览:608
win10lol全屏 浏览:25
qq图片动态动漫少女 浏览:122
sai绘图教程视频 浏览:519
如何分析加载减速法数据 浏览:672
手机怎么免费转换pdf文件格式 浏览:668
在哪个网站可以驾照年检 浏览:89
iphone可以播放ape吗 浏览:991
matlabp文件能破解吗 浏览:817
四川省高三大数据考试是什么 浏览:457
导出打开java文件 浏览:671
win10蓝屏是硬盘坏了么 浏览:46
沈阳哪里适合学编程 浏览:811
django19常用版本 浏览:521
三国志11保存在哪个文件夹 浏览:88

友情链接