从w3wp.exe恢复内存

时间:2010-07-29 13:34:28

标签: w3wp.exe

是否可以恢复w3wp.exe丢失的内存?我认为session.abandon()应该清理这样的资源?问题是我有一个Web应用程序,某些页面使w3wp.exe显着增长。像从40 MB到400 MB。现在我要严格优化我的代码以减少这种情况,但是对于w3wp.exe增长的数量,即使用户已经注销并关闭浏览器,也无法恢复丢失的内存吗?

我知道这个工作进程会在闲置使用30分钟(默认)后回收,但是如果长时间没有空闲的使用期限并且工作进程仍然具有该部分内存,那么它会继续增长?人们有什么想法吗?

2 个答案:

答案 0 :(得分:0)

垃圾收集器将处理需要释放的任何内存,只要您正确处理事物等。每次调用Session.Abandon()时GC都不会立即启动,因为这将是一个主要的性能打击。

也就是说,每个应用程序都有一个“正常”的内存使用,即稳定的内存使用(再次,如果你没有泄漏),这个数字对于每个应用程序都是不同的。 400MB可以很多,也可以什么都不是,取决于你的应用程序的功能。我的应用程序徘徊在400MB左右,其他应用程序大约1.5GB,只要内存使用量稳定在某个地方就可以了。如果您看到无限制的内存使用情况,那么您很可能在应用程序的某个位置发生泄漏。

在进程内会话中存储大量数据也可以快速增加内存使用量。而是使用文件或数据库来存储此数据。

答案 1 :(得分:0)

除非您泄漏内存,否则内存管理器将重新使用此内存,因此您不应该看到进程内存不断增长。