2011-11-14 3 views
4

Eclipseのメモリアナライザを使用してアプリケーションのヒープダンプを分析しています。私はどこかでメモリリークが発生していると考えています。私は何を探すべきか正確にわからないんだけど、MATのリーク容疑者のレポートは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が表示されているのかわかりません。私は「容疑者」を引き起こしていると考えることができます

唯一のコードはこれです:私はいくつかのリモートXMLファイルを解析してい

final InputStream stream = new URL(feedUrl).openConnection().getInputStream(); 

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

様々なサイズの、(SAXを使用していない)が、1メガバイトを超えるもの。このコードは、約5〜6個のXMLファイルを解析するループの一部です。

「問題が疑われる」ものについての洞察は、メモリリークの原因とその解決方法があれば、大いに感謝します。

答えて

3

問題の疑いがあるのはそれだけです。まずメモリリークを探す場所です。これらは、オブジェクト型によるアプリケーションでのメモリーの使用量の大部分を占めています。メモリリークがない可能性は非常に高いですが、これらのオブジェクトを最初に調べることで、メモリ使用量を減らすことができます。 - 二つの異なるものを参照してリークを削除します。ここでは

は、いくつかのリソースは、あなたが正しいの詳細

0

です。緊急の必要がある場合 - ヘルプDeleakerを使用すると、漏洩を見つけることができますが、ローカライズすることができます。

関連する問題