私が開発している Android アプリケーションで、奇妙なメモリ動作が発生します。アプリケーションは正常に動作していますが、Samsung SII タスク マネージャーや Nexus 7 の「メモリ使用量」アプリケーションなど、Android の「タスク マネージャー」を見ると、アプリの使用中にメモリの使用量が急激に増加していることがわかります数百メガ (Nexus 7 では 600 ~ 700MB) のように、途方もない量にまで成長します。その後、約 200MB に戻ったり、再び大きくなったりする可能性があります。
最初は、メモリ リークが悪いと思い、この優れたビデオで説明されているように、Eclipse メモリ アナライザー (MAT) で問題を探し始めました。しかし問題は、ここから見るとすべて問題ないように見えることです。アクティビティの重複したインスタンスや、リークの原因となる可能性のあるものは見つかりませんでした。報告されたメモリ使用量ははるかに少なくなっています。この問題は、GC メッセージにも表示されません。そのため、タスク マネージャーで 600MB の使用を報告し、Logcat で次のように表示できます。
01-29 12:05:44.511: D/dalvikvm(6044): GC_FOR_ALLOC freed 3930K, 24% free 28959K/38096K, paused 17ms, total 17ms
ヒープ量が 50 ~ 60MB を超えることはありません (アプリにはたくさんの画像があるため、これは正常な場合があります)。MAT マッチの数字。
アプリケーションにメモリ リークがあるかどうかを確認したいと思います。GC メッセージと MAT が問題を報告しないとしても、タスク マネージャがこのように高いメモリ使用量を報告するのは非常に奇妙です。もしかしたら、ここにいる誰かがすでにそのような奇妙な行動に直面しており、何が起こっているのかについての手がかりを教えてくれるでしょうか?