初めての Android アプリを作成します。表示するリストのコレクションがあります。携帯電話のメモリ サイズが小さいので、毎回リストのデータベースに移動するか、メモリに保持する方が良い設計アプローチでしょうか?
リストを頻繁に並べ替える必要があるため、データベースから並べ替えられた順序でリストを取得するだけで、かなり高速になります。
初めての Android アプリを作成します。表示するリストのコレクションがあります。携帯電話のメモリ サイズが小さいので、毎回リストのデータベースに移動するか、メモリに保持する方が良い設計アプローチでしょうか?
リストを頻繁に並べ替える必要があるため、データベースから並べ替えられた順序でリストを取得するだけで、かなり高速になります。
インメモリ リストは RAM を使用し、頻繁な DB クエリは CPU を使用し、I/O ラグを引き起こします。モバイル デバイスでは、これらすべてのバランスをとって、コードの応答性を高めながらバッテリーを節約し、RAM と CPU への影響を最小限に抑える必要があります。
コードに妥当な制限を設定し、その範囲内で作業するようにしてください。最大メモリ制限と最小応答時間を決定します。
RAMに余裕がある限りデータをメモリに保持し、RAMの制限を超えたときにそのデータの一部をディスクDBに読み書きし始めます(ページング)。最近のほとんどのモバイル デバイスには、提供するアプリの平均的な要求に対して妥当な RAM が搭載されているため、これが必要になるのはまれなケースだけです。
典型的な例は、RAM に 1000 程度を保持し、オンデマンドで DB から次/前の 1000 をロードする、100 万個のアイテムのリストを表示することです。
最後に、アプリがなくなったときに重要なデータを DB に保持するようにしてください。
データベースは、電源サイクル間またはアプリケーション間で非設定情報を保存するためにのみ使用する必要があります。メモリに入れることができるものには使用しないでください。これは遅くなり、余分なプログラミングが多くなるからです。
大量のリストを処理する必要があり、それらをテーブルに整理して SQL で取得する適切な方法がある場合、データベースを使用してデータを永続メモリに保持すると役立つ可能性があります。
編集:
また、データへのアクセス頻度を考慮することもできます。常にデータベースにクエリを実行する必要はありません。
リストの内容はわかりませんが、通常、グラフィックスを扱っていない限り、デバイスまたはアプリのメモリ制限を侵害することはありません.
単純なデータ型に推論されるテキスト データと構造は、もちろんそれらが非常に大きい場合を除き、デバイスの「限られたメモリ」を使い果たすことはありません。
とにかく、私の答えはそれを記憶に留めておくことです。必要なデータのみを永続化します。