質問
私持っているリポジトリその両方のDBから引っ張る、そして時にはキャッシュます。
はこれを実装するために、私は何でも、レポ使用HttpRuntime.CacheをすることができますインターフェイスICacheWrapper、AppFabricのを作成しました。 ICacheWrapperの具体的なクラスは、通常、そのような彼らのコンストラクタでキャッシュを取る:新しいHttpCacheWrapper(HttpRuntime.Cache)
レポのコンストラクタは、そのようなキャッシュラッパーへの参照を取ります:
myRepo = new Repo(new HttpCacheWrapper(HttpRuntime.Cache));
私は2つのレポを作成する場合は、、キャッシュは深いコピーされていますか?私はないと思うだろうが、私たちのパフォーマンスの問題は、そうでない場合を示しています。私はここで何かを逃したことがありますか?
任意の助けてくれてありがとう!
解決
あなたは何を見ていますか?何HttpCacheWrapperがdo HttpRuntime.Cacheでそれが渡されるのでしょうか?
私は、あなたが代わりに見ていることは、物事がキャッシュされていること率のために長すぎるものに保持しているキャッシュポリシーがあると思われます。レイモンド・チェンが言ったように、「間違ったキャッシュポリシーは、メモリリークと区別できない。」
私はこれを分離するような方法は、あなたが持っているポリシーを使用してレポひとつでテストしようとすることです。あなたのパフォーマンスの問題が現れるかどうかを確認します。
でない場合は、先に行くと2番目のレポを作成し、密接にメモリ使用量を監視ます。
所属していません StackOverflow