我在共享服务器上托管了一个ASP.NET MVC 3应用程序,但有以下限制:
主机管理员说如果应用程序达到这些限制,应用程序池将重新启动。
部署之后,我注意到应用程序池重启太快(几分钟后)。我使用MonitorAspNetApplication来检查内存使用情况。
首次加载时,分配的内存大约为8或9 MB,使用的内存大约为500或600 KB。
但是当我开始使用应用程序(CRUD操作,...)时,使用的内存会上下移动,但永远不会超过几(6-10)兆字节。但是分配的内存会逐渐增加,直到达到100 MB,然后应用程序池重置。
我无法弄清楚为什么会这样。应用程序并不大,它不会执行复杂的操作或繁重的查询。
我在这个项目中首先使用EF代码,StructureMap,AutoMapper和ELMAH。
答案 0 :(得分:0)
这是由于公共语言运行时的性质。垃圾收集器在内存不足时收集高阶代,但当你的应用程序获得100 MB内存时,系统中有很多可用内存。您应该自己监视内存使用情况,并在使用率接近100 MB时调用GC.Collect。