缓存对象(每个用户)和垃圾收集的含义

本文关键字:对象 用户 缓存 | 更新日期: 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条件。