先说一下 我的需求:
某一个页面需要 每隔三秒进行刷新,刷新的数据是从网络上面拿下来的。而我每次刷新的时候 要十五条数据,所以我没隔三秒就会去请求数据。

分析一下异常的原因:
原本 我以为是线程的问题,因为我用的是异步,每次请求的时候都会开启一个线程。所以导致 会有很多个线程。但是经过请教后 知道了,这个和线程的多少没有关系,因为每个线程执行完自己的任务后就会销毁。不会存在线程过多导致内存泄露的问题

经过一番请教后,内存泄露的最大原因就是某些东西一直在产生新的对象,还有就是在请求时候没有进行资源的释放,导致一直占用着内存。内存占用的越来越多。就会导致内存泄露。
java.lang.OutOfMemoryError :Coldnot not allocate JNI Env
这段代码看起来没有问题,但是我是多次调用的呀面有调用,看到这方法我 感觉可能是这个方法的第一句话出了问题,也就是CHttpClientclient = new CHttpClient();

然后经过测试,发现就是 这个原因,因为每次进行网络请求的时候都会产生一个CHttpClient 的对象,因为我是每隔三秒就会调用一次,导致有好多个对象没有被释放掉。所以造成了内存泄露

总结:
1 在进行多次循环或者是死循环的时候。一定要保证资源的释放和不要 对一个引用进行多次的new对象操作,这样很容易造成内存泄露。

2 如果不幸出现了内存泄露。首先检查你代码里面有没有死循环。然后就是 找一下没有被释放的资源,对一个引用进行了多次new对象的操作。

相关文章:

  • 2021-07-01
  • 2022-12-23
  • 2021-12-18
  • 2022-02-04
  • 2021-07-19
  • 2022-12-23
  • 2022-12-23
  • 2021-07-16
猜你喜欢
  • 2021-05-29
  • 2021-06-08
  • 2022-12-23
  • 2021-06-07
  • 2022-12-23
  • 2021-12-24
  • 2021-06-25
相关资源
相似解决方案