2016-12-22 13 views
0

私は約200項目の地図を維持しています。メモリ不足例外が発生する可能性はありますか?ネットワークやSqliteからの読み込みを避けるために、大きなデータ200+または500+アイテムをマップに保存するのがよい方法ですか?大きなHashMapがAndroidのメモリ不足例外につながることはありますか?

また、私のアプリのヒープサイズは、それは正常ですか、それとも多くのRAMをとっていますか?

enter image description here

+0

SQLiteは、メモリのオプションを持っている - でなければなりませんハッシュマップよりわずかに遅いだけです –

+7

タイトルにあなたの質問に答える:はい。 – Henry

+0

@Henry Mapでコンテンツを表示するために〜500のキーと値のペアのデータを持つことは大丈夫ですか?または毎回データベースから読み込むほうが良いですか?私は最近の〜10のキーと値のペアを格納できるカスタムマップを使用する必要があります –

答えて

1

あなたがHashMapをuseingによってOOMを恐れている場合は、SparseArrayArrayMapを試すことができます。

SparseArray:

余分なエントリに依存しない、それは自動ボクシングのキーとそのデータ構造を回避し、両方のため、オブジェクトの整数をマップするためにHashMapを使用するよりも効率的で、より多くのメモリであることを意図しています各マッピングのオブジェクト。

ArrayMap:

ArrayMapは、一般的なキー - である>より多くのメモリ効率的になるように設計されている値マッピングデータ構造従来のHashMapのより

関連する問題