首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从缓存中删除项目时的Asp.Net缓存和内存泄漏

从缓存中删除项目时的Asp.Net缓存和内存泄漏
EN

Stack Overflow用户
提问于 2009-05-28 05:38:09
回答 1查看 2.2K关注 0票数 1

因此,我尝试在我的Asp.Net应用程序中引入一些缓存。用户的新数据以大型数据集的形式从DB返回。每当用户请求数据时,我都会将此数据集插入到HttpRunTime.Cache中。目前,我将他们的缓存时间设置为2-3小时。这些都是非常大的数据集,我经常使用不同的键将它们放在缓存中。我担心的是这样做会导致内存泄漏。Asp.Net会处理缓存中过多的数据并将其删除吗?另外,当Asp.Net或我使用Cache.Remove()删除缓存项时,是否只删除了对数据集的引用,还是从内存中对数据集进行了垃圾回收?是否存在这样的情况:数据集可能会从缓存中“移除”,但仍然存在于内存中,从而产生性能问题?如果是这种情况,有没有办法显式地“垃圾回收”它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-28 05:44:23

放在缓存中的项目不能保证在那里,如果框架运行时内存不足,它将清除缓存。您可以指定优先级,以指示应首先自动清除哪些项目。

至于是否释放内存,只要管理这些项,并且您自己没有在应用程序的其他位置保留引用,垃圾收集器将在缓存超时后释放内存(或者您手动将其从缓存中删除)。

当然,从缓存中删除并不能保证物理内存会被释放,因为只有在垃圾收集器下次运行时才会释放物理内存。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/919334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档