我的托管公司在应用程序池(IIS 7.5)上设置了100mb的内存限制。
我该如何准确确定我的ASP.NET应用程序的内存使用情况?
为了创建某种基线,我创建了一个空的ASP.NET MVC 3应用程序,其中包含一个返回字符串结果的单个控制器操作。
使用ANTS对此应用程序进行分析的结果如下:
Generation 1 - 286.2KB
Generation 2 - 795.4KB
Large Object Heap - 75.63KB
Unused memory allocated to .NET - 1.323MB
Unmanaged - 26.78MB
我的担忧是,如果应用程序池限制基于私有字节,则空的ASP.NET MVC应用程序将使用33MB的池资源。因此,我的实际做一些事情的MVC应用程序(使用93MB)将很容易超过“限制”。
然而,如果我调用GC.GetTotalMemory,则结果为8MB,听起来更加可接受。
我完全没有成功地找到任何基准测试来进行测试,但是如果一个空的MVC Web应用程序确实使用33MB的资源(这听起来很过分),那么我托管方强加的限制似乎完全不现实。
非常感谢, Ben