私は野生を私に押しつけている問題があります。私は私のコードでGoogleマップAPI V2を使用して、私はマップを移動していたとき、私は(ネクサス7上)以下のLogcat出力を見ることができます:Google Map API V2でヒープが増加し続けています
01-23 21:17:10.724: D/dalvikvm(5484): GC_FOR_ALLOC freed 4531K, 21% free 12911K/16312K, paused 29ms, total 29ms
01-23 21:17:10.724: I/dalvikvm-heap(5484): Grow heap (frag case) to 13.043MB for 285724-byte allocation
01-23 21:17:10.744: D/dalvikvm(5484): GC_FOR_ALLOC freed 200K, 22% free 12990K/16592K, paused 25ms, total 25ms
01-23 21:17:12.074: D/dalvikvm(5484): GC_FOR_ALLOC freed 1326K, 23% free 12893K/16592K, paused 30ms, total 31ms
01-23 21:18:04.854: D/dalvikvm(5484): Debugger has detached; object registry had 1 entries
01-23 21:18:07.374: D/dalvikvm(5484): GC_FOR_ALLOC freed 658K, 23% free 12904K/16592K, paused 27ms, total 27ms
01-23 21:18:07.384: I/dalvikvm-heap(5484): Grow heap (frag case) to 13.763MB for 1048592-byte allocation
01-23 21:18:07.404: D/dalvikvm(5484): GC_FOR_ALLOC freed 2K, 21% free 13925K/17620K, paused 27ms, total 27ms
01-23 21:18:07.714: D/dalvikvm(5484): GC_FOR_ALLOC freed 2127K, 26% free 13054K/17620K, paused 29ms, total 29ms
01-23 21:18:44.694: D/dalvikvm(5484): GC_CONCURRENT freed 1894K, 27% free 12970K/17620K, paused 4ms+5ms, total 56ms
01-23 21:18:46.684: D/dalvikvm(5484): GC_CONCURRENT freed 1738K, 27% free 12996K/17620K, paused 4ms+2ms, total 53ms
01-23 21:18:49.254: D/dalvikvm(5484): GC_CONCURRENT freed 1756K, 27% free 13014K/17620K, paused 2ms+8ms, total 77ms
01-23 21:18:56.864: I/dalvikvm(5484): Jit: resizing JitTable from 8192 to 16384
01-23 21:18:56.934: D/dalvikvm(5484): GC_CONCURRENT freed 1840K, 21% free 13010K/16312K, paused 2ms+4ms, total 49ms
01-23 21:18:59.434: D/dalvikvm(5484): GC_CONCURRENT freed 1779K, 21% free 12995K/16312K, paused 4ms+5ms, total 50ms
01-23 21:19:03.414: D/dalvikvm(5484): GC_CONCURRENT freed 1781K, 21% free 13007K/16312K, paused 2ms+3ms, total 48ms
ヒープが成長し、成長し続け、私は何を私は考えていますそれについて行うことができます。私はウェブを介して検索し、stackoverflowを介して、しかし私のために役立つ答えはありませんでした。 あなたの誰かがエラーを見つけられることを願っています。私はAndroidにはとても新しいので、感謝してください。
EDIT1:ヒープダンプ:
EDIT2:MAT分析
疑い1:
One instance of "maps.by.a" loaded by "dalvik.system.PathClassLoader @ 0x4480cfa8" occupies 1.002.352 (22,33%) bytes. The memory is accumulated in one instance of "maps.by.d" loaded by "dalvik.system.PathClassLoader @ 0x4480cfa8".
Keywords
maps.by.a
dalvik.system.PathClassLoader @ 0x4480cfa8
maps.by.d
疑い2:
3.507 instances of "java.lang.Class", loaded by "<system class loader>" occupy 795.104 (17,72%) bytes.
Biggest instances:
•class com.ibm.icu4jni.util.Resources$DefaultTimeZones @ 0x401fccc8 - 151.744 (3,38%) bytes.
•class android.text.Html$HtmlParser @ 0x4016d288 - 126.592 (2,82%) bytes.
•class org.apache.harmony.security.fortress.Services @ 0x40091188 - 51.456 (1,15%) bytes.
Keywords
java.lang.Class
容疑者3:
8.168 instances of "java.lang.String", loaded by "<system class loader>" occupy 529.048 (11,79%) bytes.
Keywords
java.lang.String
MATでDDMSヒープダンプを調べたところ、メモリを占有していたのは何でしたか? – CommonsWare
私の質問を編集しました。 –
ええ、それは面白い表ですが、それはほんのわずかです。 [このAndroid Developers BlogのMATの使用についての記事(http://android-developers.blogspot.com/2011/03/memory-analysis-for-android.html)を読むか、[このGoogle I | MATでのメモリリークの検出方法の詳細については、MATと関連ツールの使用に関するO 2011プレゼンテーション(http://www.youtube.com/watch?v=_CruQY55HOk)を参照してください。 – CommonsWare