2011-12-02 5 views
4

私たちはメモリにたくさんのビットマップを持つアプリを持っています。Measure(Android)ヒープフラグメンテーション?

java.lang.OutOfMemoryError: bitmap size exceeds VM budget 

エラーで失敗し続けます。本当にあまりにも多くのメモリを使用している可能性があります。私たちは記憶を漏らしている可能性があります。私たちが間違って何もしていない可能性もあり、ヒープの断片化は私たちを殺すものです。 (Androidのガベージコレクタはライブブロックを再配置しないため、メガバイトを空けて50Kを割り当てることができませんでした)

フラグメンテーションを排除する方法はありますか?私はmaxAvail/memAvailのようなものを探しましたが、何も見当たりませんでした。

+0

をチェックしてくださいhttp://stackoverflow.com/questions/1955410/bitmapfactory-oom-driving-me-nuts/5493182 – Torid

+0

ありがとう、@トリド。そのアプローチは、私たちがしなければならないことかもしれません...本当にあまりにも多くのメモリを使用していることが判明すれば。しかし、この時点で、私たちはまだどの問題があるか把握しようとしています。 –

答えて

1

MATでヒープを調べます。 Eclipse Memory Analyzerは、あなたが実際に提案した問題のどれを判断するのに役立ちます。

Google I/O 2011には、メモリ管理とデバッグのトピックに関する基本的な話題がありました。あなたはそれをここでオンラインで見ることができます:http://www.youtube.com/watch?v=_CruQY55HOk&feature=relmfu

+0

ありがとうございます。私はこのASAPに戻って、あなたの答えを受け入れるか、それ以上のコメントを投稿します。 –

+2

MATが32Mまたは64Mの5Mを使用していることを示していて、2M割り当てでOOMを取得している場合は、フラグメンテーション以外のものだと結論づけるのは難しいです。 –

関連する問題