gpt4 book ai didi

asp.net - 如果您的 ASP.NET 应用程序使用过多内存会发生什么情况?

转载 作者:行者123 更新时间:2023-12-01 21:24:15 26 4
gpt4 key购买 nike

假设您正在使用共享托管计划,并且您的应用程序存储了大量对象在应用状态下。

如果它们开始占用太多内存,是否意味着服务器将删除它们?

如果没有的话会发生什么?当服务器没有剩余内存时会发生什么?您仍然可以将对象存储到应用程序或 session 状态中吗?

我问这个问题是因为我计划开发一个依赖应用程序状态的大型站点,并且存储在那里的对象不被破坏至关重要。我担心的是,在某个时刻,我可能在应用程序状态中有太多对象,并且它们可能会被删除以释放内存。

最佳答案

共有三个不同的阈值:

  1. 应用程序的总大小超过了计算机上的最大进程大小(实际上仅适用于 x86 操作系统)。在这种情况下,您首先会出现内存不足错误,通常很快就会出现进程崩溃。

  2. 您的进程以及计算机上运行的其他所有内容都不再适合物理内存。在这种情况下,机器将开始分页,通常会导致性能极差。

  3. 您的进程超出了 IIS 通过 IIS 管理器对其自身施加的内存限制。在这种情况下,该进程将被终止并重新启动,就像常规的 AppPool 回收一样。

对于应用程序对象,如果您接近上述任何阈值,条目不会自动删除。使用 Cache 对象,可以将它们删除,具体取决于您分配的优先级。

正如其他人所说,过度使用 Application 对象通常不是一个好主意,因为它不可扩展。如果您要添加第二台负载平衡服务器,那么保持一台服务器到另一台服务器的信息同步就变得非常具有挑战性。

关于asp.net - 如果您的 ASP.NET 应用程序使用过多内存会发生什么情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1989662/

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