缓存对象(每个用户)和垃圾收集的含义
本文关键字:对象 用户 缓存 | 更新日期: 2023-09-27 18:28:00
当您将某些内容存储在ASP.NET的内置缓存中时,如何使用垃圾收集器?
示例:
if( not in cache)
{
List<UserSales> sales = SalesService.GetByUserId(loggedInUser.id);
InsertToCache(cacheKey, sales);
}
else
{
// loads from cache
}
因此,对于每个用户,我首先检查数据是否在缓存中。
我想知道的是,这对垃圾收集器有什么影响?如果销售对象对于某些用户有200-500行,GC在这种情况下会如何表现?
如果我有一个20分钟的滑动到期,所以它被从缓存中删除了,仅仅因为它被删除了,它仍然必须是GC正确的呢?
唯一引用销售的是缓存系统和mvc视图页面,但当请求结束时,它就超出了范围。
缓存将在过期时删除对缓存项的引用。如果引用也由正在运行的页面持有,那么在请求结束之前,缓存项将不符合GC条件。