0

asp.net に 3 つの言語バージョンの Web サイトがあります。使用頻度の高いデータのほとんどをキャッシュにキャッシュします

HttpRuntime.Cache.Insert(キー、obj)

すべて正常に動作します。別の言語データを一意のキーで保存します。キャッシュ データを表示するためだけにページを作成しました。3 つの言語すべてのキャッシュ内のすべてのデータを表示できます。バージョン。しかし、サイトが2〜3日間正常に機能した後、彼の言語は2つ。データがキャッシュに存在しなくなったため、バージョンの動作が遅くなり始めます。langをロードするとき。版。1 のデータはキャッシュにありますが、2 と 3 ではキャッシュ ページは空です。次に、lang をロードします。バージョン 2 のデータはキャッシュされますが、バージョン 1 のキャッシュは空です。

何らかの理由で、新しいデータがキャッシュされるたびにデータがプッシュされているようです。数回のロードの後、それは自動的に修正されますが、これは問題です..

サイトにはメモリ制限がなく、必要なすべてのメモリを消費できます。タスク マネージャーでは、最大 130 MB のワーキング セット メモリと最大 100 MB のメモリ プライベート ワーキング セットであることがわかります。ハンドラーは 600 を超えることはありません。アプリ プールのアイドル時間は 0 に設定されています。

もう 1 つ問題があります。アドレス バーにサイトを入力して Enter キーを押すと、サイトの読み込みが始まるまでに時間がかかります。キャッシュデータのロード時間が非常に速いページでは..そして私は速いことを意味します..しかし、10秒ほどかかる場合もあります。ロードする

4

1 に答える 1

0

タイムスパンを指定しない場合、アイテムをいつ削除するかはキャッシュによって決定されます。これは常に最適であるとは限りません。利用可能なオーバーロードされた挿入を使用して、長い期間を指定してみてください。

public void Insert(
  string key,
  Object value,
  CacheDependency dependencies,
  DateTime absoluteExpiration,
  TimeSpan slidingExpiration)  

詳細については、 http://msdn.microsoft.com/en-us/library/4y13wyk9.aspxを参照してください。

于 2012-07-02T09:38:55.997 に答える