android– 怀疑内存泄漏

android– 怀疑内存泄漏,第1张

概述我正在使用Eclipse的内存分析器来分析我的应用程序的堆转储,因为我认为我在某处遇到了内存泄漏.我不太确定要寻找什么,但MAT中的LeakSuspect报告显示了4个“问题嫌疑人”,其中包括:Theclass"org.apache.harmony.luni.internal.net.www.protocol.jar.JarURLConnectionImpl",lo

我正在使用Eclipse的内存分析器来分析我的应用程序的堆转储,因为我认为我在某处遇到了内存泄漏.我不太确定要寻找什么,但MAT中的Leak SUSPECT报告显示了4个“问题嫌疑人”,其中包括:

 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会出现.

我能想到的唯一代码是造成“嫌疑人”的原因是:

 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文件的循环的一部分.

任何关于“问题可疑”是什么的见解,如果它们导致内存泄漏以及修复它的方法,都将非常感激.

解决方法:

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

以下是一些包含更多信息的资源

> http://wiki.eclipse.org/index.php/MemoryAnalyzer
> http://live.eclipse.org/node/520
> http://memoryanalyzer.blogspot.com/

总结

以上是内存溢出为你收集整理的android – 怀疑内存泄漏全部内容,希望文章能够帮你解决android – 怀疑内存泄漏所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1118821.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存