首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泄漏的LinkedBlockingQueue

泄漏的LinkedBlockingQueue
EN

Stack Overflow用户
提问于 2017-06-15 23:24:06
回答 1查看 289关注 0票数 0

我在我的应用程序中遇到了android本机堆中的泄漏问题。泄漏似乎来自LinkedBlockingQueue,它只是在不断增长,而没有得到清理。

如果你看下面的图,本机堆总共有478M,并且它还在不断增长(它从20M开始,每隔几秒钟就会以大约250k的速度增长)。JVM堆工作正常,并保持在100M左右的相同级别。我的应用程序使用它自己的网络代码,但即使它关闭了,应用程序只是“坐在”那里,它仍然有这个漏洞。

我已经确定LinkedBlockingQueues指向一个com.android.okhttp.ConnectionPool实例(同一个实例)。我在代码中的任何地方都没有使用okhttp。我使用的是firebase,支持配置、数据库和存储。但是,除了连接了侦听器的配置之外,其他服务在我测试时都没有。

下面的快照显示了我的java堆转储。LinkedBlockingQueue有6029个实例和近300M的保留内存。这个数字随着本机堆的增加而增长,所以我假设它们是相关的。

下面的快照显示了LinkedBlockingQueue$Node实例之一,其中的项是连接池。它们看起来都是一样的,并且指向相同的项目。

我从来没有遇到过这样的内存泄漏,也不确定是什么原因造成的。如果你们中的任何人有任何想法可能是什么,或者如果你们之前有类似的问题,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2017-06-16 05:45:16

我想通了。这与我的应用程序或firebase无关。看起来可能是Android Studio集成了ADB造成的。当我禁用集成并使用Android设备监视器进行内存和获取日志时。本机堆不会增长,并保持在相同的级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44571372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档