【问题标题】:How to get the total allocated memory by an (ASP).NET app programatically?如何以编程方式获取(ASP).NET 应用程序分配的总内存?
【发布时间】:2010-10-01 23:24:53
【问题描述】:

如何以编程方式检查我的程序当前分配了多少内存?

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

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

【问题讨论】:

    标签: c# .net asp.net memory


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您还可以从 Process 类中调用 PrivateMemorySize64(或 Virtual,如果您愿意)。但是,请注意,数字会被缓存,并且只有在您调用 Refresh 时才会刷新。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2017-09-01
          • 2010-10-04
          • 2020-07-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多