2

かなりの量のデータを抽出する必要があるデータベースがあります。今、私は必要なときにそのデータを取得します。つまり、データベースの相互作用を処理するクラスを作成し、アクティビティがデータを必要とするときはいつでも、データのためにそのクラスを呼び出します。したがって、一度にアクティビティには、メモリ内の最小限のデータ(つまり、使用しているデータ)しかありません。ただし、アクティビティを変更するたびに、新しいアクティビティのデータをフェッチするためにデータベースアクセスを実行する必要があります。

方法2

これとは対照的に、私はこの他の選択肢を持っています。アプリケーションオブジェクトを作成し、最初にデータベースアクセスを実行してから、(すべてのアクティビティで)必要なすべてのデータをアプリケーションオブジェクトに格納します。データが必要なときはいつでも、アプリケーションオブジェクトを参照します。これの欠点は、特定の瞬間に使用していない余分なデータを保持しすぎることです。

上記の2つのアプローチのどちらが優れていますか?

前もって感謝します。

4

2 に答える 2

0

それは、要件とその優先順位によって異なります。解決策 2 に必要な時間が長すぎて受け入れられない場合は、最適化します (たとえば、方法 2 を使用しますが、一般的には、メモリの量が十分であると仮定して、潜在的にすべてのデータベースをメモリに保存しないことをお勧めします)。

解決策 1 を試しましたか。問題がデータベースからのデータの読み取りのみである場合、1 つのアクティビティのデータをロードするのにそれほど時間はかかりません。複雑な計算が含まれている場合は、最適化を迫られる可能性があります。ただし、念のため最適化しないでください。

于 2012-02-01T12:28:37.330 に答える
0

データベースへの呼び出しは、複数のアプリケーションからアクセスされるまで、またはアクセスされない限り、コストがかからないため、最初のアプローチを好みます。

于 2012-02-01T12:29:53.457 に答える