Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ASP.Net使用什么缓存算法?_Asp.net_.net_Algorithm_Caching_Asp.net Caching - Fatal编程技术网

ASP.Net使用什么缓存算法?

ASP.Net使用什么缓存算法?,asp.net,.net,algorithm,caching,asp.net-caching,Asp.net,.net,Algorithm,Caching,Asp.net Caching,我正在围绕ASP.Net的缓存编写一个包装器,我很好奇他们使用什么样的缓存算法。例如,假设缓存中的所有内容都具有相同的过期日期和优先级,它如何清除这些项 列出了11种不同的缓存算法。ASP.Net是否使用其中的一个 您描述的算法用于确定当缓存已满时何时从缓存中删除项。但是,ASP.NET缓存没有设置的容量—它位于堆上,因此其大小是未绑定的 缓存内部有一个计时器,它以固定的频率滴答作响。每次勾选时,它都会查找过期项目并将其删除。如果项目具有滑动过期,则每个缓存获取都将增加其寿命,否则将被删除 更新

我正在围绕ASP.Net的缓存编写一个包装器,我很好奇他们使用什么样的缓存算法。例如,假设缓存中的所有内容都具有相同的过期日期和优先级,它如何清除这些项


列出了11种不同的缓存算法。ASP.Net是否使用其中的一个

您描述的算法用于确定当缓存已满时何时从缓存中删除项。但是,ASP.NET缓存没有设置的容量—它位于堆上,因此其大小是未绑定的

缓存内部有一个计时器,它以固定的频率滴答作响。每次勾选时,它都会查找过期项目并将其删除。如果项目具有滑动过期,则每个缓存获取都将增加其寿命,否则将被删除

更新:

我已经看过了Cache类,事实上,当“内存压力”太大时,有一种逻辑会删除一定比例的最少使用的项。如果转到
System.Web.UI.Caching.CacheMemoryStats.GetPercentToTrim()
CacheCommon.CacheManagerThread(Int32)
,您可以在Reflector中看到这一点。在
UsageBucket
类中有一些非常复杂的逻辑,我现在无法理解,但是如果方法的名称有什么依据的话,它似乎不是任何特殊的缓存算法,而是基于最不常用的算法


所以我想我错了:)

那么,如果你的内存用完了会发生什么呢?我认为ASP.Net通常对缓存内存使用有一个自适应的“限制”,以避免阻塞机器上的其他进程(及其本身)+1个有趣的问题将等待答案