2017-08-03 6 views

答えて

1

それより良いか、私はたび

どちらも、私見を読むべきです。スマートなキャッシュを使用してください。

  • このデータには静的なスレッドセーフなキャッシュがあります。

  • キャッシュを遅延ロードできるように、そのキャッシュの周りにAPIを設計します。キャッシュを調べようとする人は、結果を非同期的に取得する必要があります。そのため、キャッシュが空の場合は、キャッシュの内容をバックグラウンドスレッドにロードできます。これは

  • Applicationのカスタムサブクラスを持っており、そこでは、override onTrimMemory()など、RxJava/RxAndroid、LiveData、リスナー/コールバックのパターンを使用して達成することができます。 以上でonTrimMemory()が呼び出された場合は、キャッシュを空にして、ユーザーがアプリを使用していないときのメモリ使用量を減らします。

この方法では、キャッシュを使用したコードは、データをロードする必要があるかどうかを気にしない、キャッシュを使用する必要があることはほとんどありませんときに、メモリの消費を最小限に抑えることができます。

88000姓を一度にメモリに保存する必要がない場合は、それらをSQLiteデータベースに保存し、必要に応じてそのデータベースにクエリを実行します。

0

一般に、実行時にはメモリが使用されるため、同じである必要があります。違いは、オブジェクトとしてメモリに格納し、必要に応じてメモリから削除できるため、一貫したメモリ負荷の代わりにいくつかのメモリピックが存在することです。

そのロジックにAPIまたはJavaScriptを使用し、JSONを読み込むことを検討しましたか? JSONをロードするためのビジネスロジックとしてAPIまたはJavaScriptを使用する異なるアーキテクチャのアプローチは、データを含むオブジェクトのロードおよびアンロードに役立ちます。 JSONは静的にローカルに保存することも、ダイナミックに保存することもできます(リモートサーバに保存されています)。これにより、あなたの姓の更新が容易になります。さらに、この方法では、渡されたパラメータごとにデータを照会することができるため、すべての80.0000姓を一度にロードする必要はありません。その質問はAndroidに関するものですが、アーキテクチャのアプローチはどのデバイスでも同じである可能性があります。

これは、アーキテクチャーやモバイルプラットフォーム(これが実際に使用されているかどうかは実際には定義されていません)に応じて、これがあなたや他の人のアプローチを判断するのに役立ちます。

乾杯!

関連する問題