代码之家  ›  专栏  ›  技术社区  ›  Malik Daud Ahmad Khokhar

Asp。从缓存中删除项目时出现网络缓存和内存泄漏

  •  1
  • Malik Daud Ahmad Khokhar  · 技术社区  · 17 年前

    所以我试图在我的Asp中引入一些缓存。网络应用程序。用户的新数据以大型数据集的形式从数据库返回。每当用户请求数据时,我都会将此数据集插入 HttpRunTime.Cache 。目前,我将他们的缓存时间设置为2-3小时。这些是非常大的数据集,我经常用不同的键将它们放入Cache中。我担心的是这样做会导致内存泄漏。会Asp。Net会处理Cache中过多的数据并将其删除吗?同样,当Asp删除缓存项时。网络或由我使用 Cache.Remove()

    1 回复  |  直到 17 年前
        1
  •  5
  •   Tetraneutron    17 年前

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

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

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

    推荐文章