2012-02-01 7 views
2

私はかなりのデータを抽出する必要があるデータベースを持っています。 これは必要なときにデータを取得します。つまり、データベースのやりとりを処理するクラスを作成しました。アクティビティでデータが必要な場合はいつでも、そのクラスのデータを呼び出します。そのため、アクティビティには最小限の量のデータのみがメモリに格納されます(つまり、使用しているデータ)。しかし、私がアクティビティを変更するたびに、新しいアクティビティのデータをフェッチするためにデータベースアクセスを実行する必要があります。アプリケーション変数の効率?

方法2私は、すべての活動において(アプリケーションオブジェクトを作成し、その後、最初のデータベースアクセスを実行し、その後、私は必要となるすべてのデータを格納している。この他の代替を持っているこれに対し

)をアプリケーションオブジェクトに追加します。データが必要なときはいつでも、私はアプリケーションオブジェクトを参照します。これの欠点は、私はあまりにも多くの余分なデータを保持している私は、特定の瞬間に使用していないです。

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

ありがとうございます。

答えて

0

これは要件と優先順位によって異なります。ソリューション2に必要な時間が長すぎて受け入れられない場合(たとえば、方法2を使用して、一般的にはすべてのデータベースをメモリに保存することをお勧めします。

解決策1を試しましたか?データベースからデータを読み取るだけで問題がある場合は、1つのアクティビティーのデータをロードするのに時間がかかりません。複雑な計算が必要な場合は、最適化するように押し付けられます。しかし、場合によっては最適化しないでください!

+0

答えに感謝します。私のデータベース操作はかなり世俗的です。多くの操作を必要としません。私はオプション1にもっと傾いています。それはもっと効率的ですね。 – user590849

+0

私が言ったように、方法1が選択のための時間の面で十分であるなら、間違いなく方法2を実装しないでください。 – Stefan

0

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

関連する問題