System.Web.Caching和System.Runtime.Caching结合了内存使用行为

时间:2016-11-02 14:41:53

标签: c# .net caching system.web.caching

我有一个遗留应用程序,相当大,实现了System.Web.Caching和System.Runtime.Caching。是的,正确的是,在同一个应用程序池中运行的服务可能正在使用。

我的问题是,就记忆限制而言,这些是如何相互作用的?从我读过的内容来看,MemoryCache的默认限制是可用内存的60%,非常棒。我想更直接的问题是System.Web.Caching实例是否共享相同的60%?

我还有一个MemoryCache的命名实例,限制为100mb。

我想了解的是,当System.Web.Caching被填满并且强制执行注释时,我的MemoryCache实例会发生什么?

1 个答案:

答案 0 :(得分:1)

当缓存达到其限制时,它开始逐出最旧的项目或具有最接近到期​​时间的项目,这取决于策略。您可以为Web缓存设置内存量。查看此帖子it explains all of this。所有缓存都以类似的方式工作。另外,看看NCache。他们有免费版。它允许使用缓存执行更多操作,尤其是对于Web Farms。

所以,你问:就内存限制而言,它们将如何相互作用? - 他们不会互动。他们将分别为每个人做他们所做的事。每个人的资源都有限。尝试使用一个缓存而不是多个缓存,您将节省实际缓存项目的资源。