我有一个存储库,它同时来自db,有时也是缓存。
为了实现这一点,我创建了一个接口ICacheWrapper,让repo使用HttpRuntime.Cache,AppFabric等等。 ICacheWrapper的具体类通常在其构造函数中使用缓存,如下所示:new HttpCacheWrapper(HttpRuntime.Cache)
repo的构造函数引用了一个缓存包装器,如下所示:
myRepo = new Repo(new HttpCacheWrapper(HttpRuntime.Cache));
如果我创建2个repos,缓存是否会被深层复制?我想不会,但我们的性能问题表明不是这样。我在这里错过了什么吗?
感谢您的帮助!
答案 0 :(得分:0)
你在看什么? HttpCacheWrapper对它传递的HttpRuntime.Cache做了什么?
我怀疑你所看到的是一个缓存策略,它可以保留太长时间来缓存事物的速率。正如Raymond Chen所说,“不正确的缓存策略与内存泄漏无法区分。”
我要孤立的方法是尝试使用您拥有的策略只使用一个回购进行测试。查看您的性能问题是否出现。
如果没有,那么继续创建第二个回购并密切监视内存使用情况。