私の質問を見て時間を割いていただきありがとうございます。私は現在、開発中のアプリケーションでメモリスパイクに問題があります。Androidメモリスパイク
大量のHTMLデータをダウンロードして処理できるようにすることが目的ですが、原因は現在のところ、HTMLでネストされた大きなbase64エンコードされたイメージがモバイルプラットフォームでの使用には適していないためです。記録のために、私は現在、サムスン銀河Sでテスト中です。また、ではなく、がギャラクシーネクサスで発生します。
私の問題は、約2.8MBの大量のHTMLデータを処理すると、メモリヒープが約27-29MBに増加しますが、割り当てられたメモリは決して18-19MBを超えないことです。 HTMLが処理、保存、表示されると、割り当てられたメモリは約3〜4MBに戻ります。このHTMLをダウンロードしてもう一度処理すると、このプロセスが繰り返され、同じメモリが使用されますが、はのように見えます(これは必要ないように見えます)。 Out of memory
エラーです。
このエラーが発生した場合、通常、HttpGet
を使用してHTMLをダウンロードするか、StringBuffer
を使用してディスクからデータを抽出しています。場合によっては、XMLの膨張中にBitmap
によって引き起こされることがあります。
ご協力いただければ幸いです。
ギャラクシーSには2.3の走行距離があります。だからあなたはジンジャーブレッドとICSを比較します。可能であれば、あなたの解析後にクリーンアップを試みるべきです... – WarrenFaith
返信ありがとうございます。銀河系Sは2.3.6です。私は可能な限りクリーンアップしていますが、割り振られたメモリが18MBを超えることはありませんが、まだヒープを拡張しようとしているのは不思議です... –
ガベージコレクションと失敗したファイナルで生成されたLogCat出力を投稿してください割り当て。 –