我有一个遗留应用程序,相当大,可以同时实现System.Web.Caching和System.Runtime.Caching。是的,没错,有些服务可能正在使用同一应用程序池中运行。
我的问题是,就内存限制而言,它们将如何相互作用?据我了解,MemoryCache的默认限制是可用内存的60%,这很好。我想更直接的问题是System.Web.Caching实例是否共享相同的60%?
我也有一个MemoryCache的命名实例,限制为100mb。
我想了解的是,如果System.Web.Caching被填充并且强制弹出时,我的MemoryCache实例会发生什么?
最佳答案
当缓存达到其限制时,它开始逐出其最旧的项目或具有最接近到期时间的项目,这取决于策略。您可以为Web缓存设置内存量。检查此帖子it explains all of this。所有缓存均以类似方式工作。另外,查看NCache。他们有免费版本。它允许对缓存进行更多处理,尤其是对于Web场。
因此,您问:就内存限制而言,它们将如何相互作用? --
他们将不会互动。他们将分别为每个人做他们要做的事情。每个将具有有限的资源。尝试使用一个缓存而不是多个缓存,您将节省用于实际缓存项目的资源。
关于c# - System.Web.Caching和System.Runtime.Caching组合的内存使用行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40382758/