ASP.Net使用什么缓存算法?
发布时间:2020-12-16 09:52:47 所属栏目:asp.Net 来源:网络整理
导读:我正在编写ASP.Net缓存的包装器,我很好奇他们使用的缓存算法.例如,假设缓存中的所有内容都具有相同的到期日期和优先级,它如何清除项目? Wikipedia列出了11种不同的缓存算法. ASP.Net使用其中之一吗? 解决方法 您描述的算法用于确定何时从缓存中删除项目的
我正在编写ASP.Net缓存的包装器,我很好奇他们使用的缓存算法.例如,假设缓存中的所有内容都具有相同的到期日期和优先级,它如何清除项目?
Wikipedia列出了11种不同的缓存算法. ASP.Net使用其中之一吗? 解决方法
您描述的算法用于确定何时从缓存中删除项目的时间.但是,ASP.NET缓存没有设置容量 – 它存在于堆上,因此它的大小是未绑定的.
在内部,缓存具有以常规频率滴答的计时器.在每个刻度线上,它会查找过期的项目并将其删除.如果某个项目有一个滑动过期,那么每个cache-get将增加其生命周期,否则它将被删除. 更新: 我已经完成了Cache类,实际上有一些逻辑可以在“内存压力”过高时删除一定比例的最少使用的项目.如果你转到System.Web.UI.Caching.CacheMemoryStats.GetPercentToTrim()和CacheCommon.CacheManagerThread(Int32),你可以在Reflector中看到这个.在UsageBucket类中有一些相当复杂的逻辑,我现在无法理解,但如果方法的名称是任何东西,它似乎不是任何特殊的异国缓存算法,但基于最少的 – 经常使用的算法. 所以我猜我错了:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |