0

我有一个从数据库中提取的存储库,有时还从缓存中提取。

为了实现这一点,我创建了一个接口 ICacheWrapper,它允许 repo 使用 HttpRuntime.Cache、AppFabric 等等。ICacheWrapper 的具体类通常在其构造函数中使用缓存,如下所示: new HttpCacheWrapper(HttpRuntime.Cache)

repo 的构造函数引用缓存包装器,如下所示:

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

如果我创建 2 个存储库,缓存会被深度复制吗?我认为不会,但我们的性能问题表明并非如此。我在这里错过了什么吗?

谢谢你的帮助!

4

1 回答 1

0

你在看什么?HttpCacheWrapper 对它通过的 HttpRuntime.Cache 做了什么?

我怀疑你看到的是一个缓存策略,它对事物的缓存速度太长了。正如 Raymond Chen 所说,“不正确的缓存策略与内存泄漏无法区分”。

我隔离这一点的方法是尝试使用您拥有的策略仅使用一个 repo 进行测试。看看你的性能问题是否出现。

如果没有,那么继续创建第二个 repo 并密切监视内存使用情况。

于 2010-11-19T21:01:58.797 回答