首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >疑似内存泄漏

疑似内存泄漏
EN

Stack Overflow用户
提问于 2011-11-14 09:27:39
回答 2查看 3.2K关注 0票数 4

我正在使用Eclipse的内存分析器来分析我的应用程序的堆转储,因为我认为我在某个地方遇到了内存泄漏。我不是很确定要找什么,但是MAT中的泄漏嫌疑人报告显示了4个“问题嫌疑人”,它们是:

代码语言:javascript
复制
 The class "org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnectionImpl", loaded by "<system class loader>", occupies 608,976 (16.15%) bytes. The memory is accumulated in one instance of "java.util.jar.JarFile" loaded by "<system class loader>".

 One instance of "org.apache.harmony.xml.ExpatParser" loaded by "<system class loader>" occupies 501,304 (13.29%) bytes. The memory is accumulated in one instance of "java.lang.Object[]" loaded by "<system class loader>".

 127 instances of "org.bouncycastle.jce.provider.X509CertificateObject", loaded by "<system class loader>" occupy 451,280 (11.97%) bytes. These instances are referenced from one instance of "java.util.Hashtable$HashtableEntry[]", loaded by "<system class loader>"

 6,608 instances of "java.lang.String", loaded by "<system class loader>" occupy 407,824 (10.81%) bytes. 

我猜的最后一个问题是我使用了太多的字符串?其他的我一无所知。我没有使用任何加密,所以我不知道为什么会显示BouncyCastle。

我能想到的唯一导致“可疑”的代码是这样的:

代码语言:javascript
复制
 final InputStream stream = new URL(feedUrl).openConnection().getInputStream();

 Xml.parse(stream, Xml.Encoding.UTF_8, root.getContentHandler());
 stream.close();

我正在解析一些远程XML文件(使用SAX),大小不一,但不超过1MB。这段代码是解析大约5-6个xml文件的循环的一部分。

任何关于“问题嫌疑人”是什么的洞察,如果他们导致了内存泄漏和修复它的方法,我们将非常感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-14 09:37:57

疑似问题的地方就是:首先寻找内存泄漏。根据对象类型,它们是应用程序中最常用的内存。您很有可能没有内存泄漏,但是您可以尝试通过首先查看这些对象来减少内存使用量。

下面是一些包含更多信息的参考资料

  • http://wiki.eclipse.org/index.php/MemoryAnalyzer
  • http://live.eclipse.org/node/520
  • http://memoryanalyzer.blogspot.com/
票数 3
EN

Stack Overflow用户

发布于 2011-11-15 23:55:31

您是对的:查看和删除泄漏-这是两件不同的事情。如果有紧急需求-借助help Deleaker,您可以找到泄漏,但可以将其本地化。

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

https://stackoverflow.com/questions/8116335

复制
相关文章

相似问题

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