首页新闻找找看学习计划

Java其他网络协议占用内存空间问题

0
[已解决问题] 解决于 2020-01-30 19:09

为什么每次在eclipse中运行多线程程序之后会内存爆满呢?想知道怎么解决
主要是Java其他网络协议占用了内存,关掉就会恢复正常,但是每次都要用加速球手动关掉,网上手里一下,说是给eclipse分配了太多内存,要改配置文件,太复杂看不懂

诗瑶1的主页 诗瑶1 | 初学一级 | 园豆:176
提问于:2019-11-13 20:52
< >
分享
最佳答案
1

代码是否存在内存泄露?

一、查看堆内存
设置路径:Windows > Pregerences > General
勾选右侧窗口的show heap status一项
点击 ok,即可在eclipse右下方看到实时的heap情况

二、调整堆内存
进入eclipse程序文件夹,打开名称为eclipse.ini的配置文件进行编辑,按需添加或修改如下两项设置:

当堆内存的余量小于40%时,JVM会将内存扩大到-Xmx的值

当堆内存的余量大于70%时,JVM会将内存缩小到-Xms的值

jvm初始堆内存,默认是物理内存的1/64

-Xms256m

jvm最大堆内存,默认是物理内存的1/4

-Xmx2048m

奖励园豆:5
Kelly_ | 菜鸟二级 |园豆:225 | 2019-11-14 10:57

应该不是这里的问题,可能是因为我写了一个while(true)的循环测试代码,但是没有终止它,类似于
private int x=100;
while(true)
{
if(x>0)
{
x--;
System.out.println(x);
}
}
这样是不是会出现内存爆满的现象?

诗瑶1 | 园豆:176 (初学一级) | 2019-11-14 13:37

@诗瑶1: System.out.println是不会占用内存的。简单的调试手段:把怀疑有问题的代码删除掉,再次运行看问题是否存在。

Kelly_ | 园豆:225 (菜鸟二级) | 2019-11-20 16:07
其他回答(1)
0

用idea吧

Ctrl` | 园豆:2250 (老鸟四级) | 2019-11-14 09:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册