2

我有一个遗留应用程序,相当大,它同时实现了 System.Web.Caching 和 System.Runtime.Caching。是的,没错,在同一个应用程序池中运行的服务可以使用其中任何一个。

我的问题是,就内存限制而言,这些将如何相互作用?根据我的阅读,MemoryCache 的默认限制是可用内存的 60%,这很棒。我想更直接的问题是 System.Web.Caching 实例是否共享相同的 60% ?

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

我想了解的是,如果或当 System.Web.Caching 被填满并强制弹出时,我的 MemoryCache 实例会发生什么?

4

1 回答 1

1

当缓存达到其限制时,它开始逐出其最旧的项目或具有最接近到期​​时间的项目,这取决于策略。您可以设置 Web 缓存的内存量。检查这篇文章,它解释了所有这些。所有缓存都以类似的方式工作。另外,请查看 NCache。他们有免费版本。它允许使用缓存做更多事情,尤其是对于 Web Farms。

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

于 2016-11-02T16:02:42.277 回答