是否有可能恢复从w3wp.exe丢失的内存?我认为session.abandon()应该像这样清理资源?问题是,我有一个web应用程序,某些页面会使w3wp.exe显著增长。比如从40MB到400MB。现在,我将大胆地优化我的代码以减少这种情况,然而,无论w3wp.exe增长多少,即使用户已经注销并关闭浏览器,也没有办法恢复丢失的内存吗?
我知道这个工作进程将在空闲使用30分钟(默认)后回收,但如果长时间没有空闲使用,并且工作进程仍然拥有这部分内存,它将继续增长?大家有什么想法吗?
发布于 2010-07-29 21:49:40
垃圾收集器将处理任何需要释放的内存,前提是您正确地处理了这些内容,等等。GC不会在您每次调用Session.Abandon()时立即启动,因为这将对性能造成重大影响。
也就是说,每个应用程序都有一个“正常”的内存使用率,即稳定的内存使用率(同样,如果您没有泄漏的话),并且这个数字对于每个应用程序都是不同的。400MB可能很多,也可能什么都不是,这取决于你的应用程序的用途。我有一些应用程序徘徊在400MB左右,其他的在1.5 as左右,只要内存使用量稳定在某处就没问题。如果你看到无限的内存使用,那么很可能是你的应用程序中的某个地方发生了泄漏。
在进程内会话中存储大量数据还会迅速增加内存使用量。相反,请使用文件或数据库来存储此数据。
发布于 2010-07-29 21:51:47
除非您正在泄漏内存,否则内存管理器将重用此内存,因此您应该不会看到进程内存持续增长。
https://stackoverflow.com/questions/3363003
复制相似问题