2010-11-19 1 views
0

私は、データベースと、時にはキャッシュの両方から取得するリポジトリを持っています。httpcacheの問題

これを実装するために、私はHttpRuntime.Cache、AppFabricなどを使用できるようにするICacheWrapperインターフェイスを作成しました。私は2を作成した場合

myRepo = new Repo(new HttpCacheWrapper(HttpRuntime.Cache)); 

:新しいHttpCacheWrapper(HttpRuntime.Cache)

レポのコンストラクタは、そのようなキャッシュラッパーへの参照を取りますので、同じようICacheWrapperの具体的なクラスは、通常、そのコンストラクタでキャッシュを取りますrepos、キャッシュは深くコピーされますか?私はそうではないと思うだろうが、私たちのパフォーマンス上の問題はそれ以外の場合がある私はここで何かを逃したのですか?

ありがとうございました!

答えて

0

あなたは何を見ていますか? HttpCacheWrapperはHttpRuntime.Cacheで何をしますか?

あなたが見ているのは、物事がキャッシュされる割合が長すぎるものを保持するキャッシュポリシーだと思います。 Raymond Chen氏は、「不正なキャッシュポリシーはメモリリークと区別できません」と述べています。

私がこれを隔離する方法は、あなたが持っているポリシーを使ってただ1つのレポでテストしようとすることです。パフォーマンスの問題が発生していないか確認してください。

もしそうでない場合は、2番目のレポを作成し、メモリ使用状況を注意深く監視してください。

+1

もう少しリサーチ/リファクタリングの結果:キャッシュから取り出されるもののリストが1つのキャッシュから提供されているようです。このリストは、要求されたWebフォームのニーズに合わせてフィルタリングされています。フィルタリングされたリストは、WebフォームUIにバインドされています。何が起こっているように見えるのは、キャッシュされたリストに加えてフィルタリングされたリストが作成されており、どちらもすぐにGC化されていないということです。 –

関連する問題