gpt4 book ai didi

asp.net - 我应该将 ASP.NET 应用程序池设置为自动回收吗?

转载 作者:行者123 更新时间:2023-12-03 23:52:40 25 4
gpt4 key购买 nike

我有许多 ASP.NET (4.0) Web 应用程序,它们似乎在每个请求期间泄漏(少量)内存。这是一个很小的数量,对于大多数用例,它不会在数周甚至数月内成为问题。我通常尝试关闭由应用程序管理的任何连接,避免状态变量(或我的单例的实例变量)等。

我的问题是 - 这是 ASP.NET 应用程序的正常行为吗?在闲置 20 分钟后,我关闭了回收应用程序池的默认 (IIS 7) 行为。我这样做是因为应用程序需要几分钟来构建其内部缓存,并且我希望避免对用户体验产生负面影响(并让他们在发出请求时等待应用程序启动)。

我知道这可以通过序列化缓存或加速缓存生成过程来缓解,但我的问题更多地与它的原理有关:我个人认为依赖 IIS 自动回收功能作为一种创可贴的方法。我错了吗?我是不是因为应用程序的内存使用量与可用内存量相比不够高而没有看到垃圾收集器在工作?还是应该深入研究内存问题?

任何见解将不胜感激。

最佳答案

不幸的是,这是正常的,尽管主要是由于劣质的应用程序编写者而不是其他任何东西。

为此,IIS 默认将新创建的应用程序池配置为每 1740 分钟回收一次。

正如你所说,这是创可贴。一个编写良好的应用程序,清除其所有资源(包括悬空事件处理程序),根本不应该泄漏。

this关于该主题的博客文章。

关于asp.net - 我应该将 ASP.NET 应用程序池设置为自动回收吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5187397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com