如何通过编程方式获取(ASP).NET应用程序的总分配内存?

时间:2009-01-17 11:15:52

标签: c# .net asp.net memory

如何以编程方式检查程序当前分配的内存量?

我需要它用于ASP .NET应用程序,但我怀疑该解决方案适用于所有类型的.NET应用程序。理想情况下,获取当前分配的内存量的操作应该很快,因为我需要经常查询它。

编辑: 谢谢你的回答。我将使用GC.GetTotalMemory完成此任务,因为我需要将它用于ASP .NET应用程序。经过一些实验,我已经确定它足够快速和准确满足我的需求。使用Process'PrivateMemorySize64属性的建议也将起作用;但正如答案中所指出的,对于ASP.NET应用程序,通常会有多个AppDomain在一个进程中运行。我需要每个AppDomain的内存总量。

3 个答案:

答案 0 :(得分:6)

有一个GC.GetTotalMemory方法,但这只会给你一个近似值。这够了吗?

如果您使用GC.GetTotalMemory(false)调用它会更快...

答案 1 :(得分:2)

并且还要注意,对于asp.net,在一个进程中拥有多个应用程序非常常见。这样就限制了PrivateMemorySize64的实用性。 GC.GetTotalMemory是每个应用程序域afaik。

答案 2 :(得分:1)

您也可以从Process课程调用PrivateMemorySize64(或者您喜欢的虚拟)。但是,请注意,这些数字会被缓存,只有在您调用Refresh时才会刷新。