1

サイズが20〜500KBのさまざまなtext/ json / xml / whateverファイル(ローカルにアセットディレクトリに保存されている)があるとします。これらのファイルがアプリケーション全体で頻繁に参照されると仮定すると、次のことを行う方が適切です。

A)ファイルを最初に要求されたときに一度読み取り、データを変数に格納します

また

B)要求されるたびにファイルを読み取り、要求された情報を取得して、GCが後でクリーンアップできるようにしますか?

web-devから来て、私は通常オプション(A)を使用しますが、モバイルデバイスのストレージ制限により、このコンテキスト(Androidアプリ開発)でBが優先されるのではないかと思います。

TYIA。

4

3 に答える 3

1

データを圧縮することでメモリに保存できます。これにより、いつでもメモリフットプリントが削減されるため、この手法はPCと携帯電話の両方に適用できます。後でデータが必要になったときに、データを読み取って解凍します。したがって、ファイルを1回読み取り、圧縮してメモリに保存します。次の例では、GZIPOutputStreamを使用して文字列を圧縮します。

public static String compress(String str){
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    GZIPOutputStream gzip = new GZIPOutputStream(out);
    gzip.write(str.getBytes());
    gzip.close();
    return out.toString("ISO-8859-1");
 }
于 2012-04-18T05:46:00.007 に答える
0

ファイルが頻繁に要求されている場合は、ファイルを1回読み取って、キャッシュに保存することをお勧めします。

また、「GoogleがHighScalabilityWebサイトでキャッシュとキャッシュインを教えてくれた方法」というタイトルのこの記事を読むこともできます。

于 2012-04-18T05:15:13.157 に答える
0

これは、ファイルの合計サイズ、アクセス頻度、およびターゲットとする顧客によって異なります。ハイエンドの電話は非常に大きなメモリを持っていますが、メモリが少ない多くのローエンドのシステムがあります。バランスをとるために、LRUキャッシュを使用する価値があるかもしれません。

于 2012-04-20T01:40:08.590 に答える