0

重複の可能性:
Google App Engine: Memcache または静的変数?

memcache とクラスごと (エンティティの種類) の静的マップ (識別可能な値、変更されていないチェック、統計、名前空間を除く) に違いはありますか?!

静的ストレージにも 1MB の制限がありますか? この 1MB は memcache と共有されますか?

ある意味では、静的マップは有利に見えます。たとえば、型固有の HashMap を定義して使用できるようになります。静的 map.put は失敗することはありませんが、memcache.put は信頼できないためです。

4

1 に答える 1

1

(以下は、ランタイム インスタンス内の memcache と静的変数ではなく、memcache とデータストアの間のトレードオフについて質問していることを前提としています。後者については、Thilo のリンクで説明されています。)

memcache サービスが使用される理由は、平均してデータストアよりも大幅に高速であるためです。たとえば、昨日のdatastorememcacheの統計について考えてみましょう。データストアの場合、取得オペレーションは平均約 32 ミリ秒、プットは約 35 ミリ秒、削除は 60 ミリ秒です。memcache の場合、およそ 8 ミリ秒、17 ミリ秒、10 ミリ秒でした。(さらに、これらの統計は、memcache の約 5 倍のテスト操作に基づいています)。アプリにとってレイテンシーまたはインスタンス時間が重要な場合、memcache は非常に有益です。

つまり、memcache は信頼できません。memcache に書き込まれたデータは、制御できない理由でいつでも消える可能性があることを常に想定する必要があります。一方、データストア操作は実質的に永続的であることが保証されています。

つまり、正確さが必要な場合はデータストアを使用し、速度が重要な場合は memcache を使用します。さらに良いことに、両方を使用してください!

于 2012-10-17T11:32:39.127 に答える