2012-08-15 82 views
7

我们应该多久回收应用程序池?我们应该多久回收应用程序池?

有人告诉我应该每24小时回收应用程序池吗?

为什么我需要回收应用程序池?

我们会得到什么样的好处?

+0

如果有一个正确的答案,你不认为这是内置的,而不是你可以配置的东西吗?顺便说一下,*默认值是29小时。 – 2012-08-15 06:38:27

+0

说实话,如果我编写一个紧凑的应用程序来管理资源,并且在某些情况下我甚至希望将静态数据存储在静态类的应用程序池中(最适合只读数据,并且需要在加载时双重锁定)对于我经常想知道的这个问题,我是否需要回收应用程序池? – 2012-08-15 06:45:19

回答

7

除非有一些压倒一切的原因,否则我会建议没有任何基于时间的回收(也就是说,没有日程安排,例如每天凌晨3点,也不是每29小时循环回收一次)。我认为这更多的是从不稳定的时候开始保留(考虑重新使用轻量级版本的必须重新启动服务器)。

为了防止内存泄漏等问题,您可以对虚拟内存和已用内存设置限制,以便在进程失控时强制进行回收。您将获得确保您不会耗尽太多内存的所有价值,而不会不必要地进行回收。

有绝对的时间需要回收,但这些主要存在于更改周围(即,如果要丢弃新DLL或进行某些配置更改)。就“定期维护”类型的回收而言,如果编写和测试的代码编写正确,则不需要这样做。 (另外需要注意的是,正确的监控也有帮助,因为我认为你也可以使用CPU逃跑,并且没有回收限制)

回收的好处是你“开始新鲜”。你清理你的内存并重新加载你的DLL。任何长时间运行的线程(读取:挂起的线程都没有做任何事情)将被清除。缺点是你必须花时间把东西放回到内存中(尽管新的热身内容会为你提供很多帮助)。

相关问题