代码之家  ›  专栏  ›  技术社区  ›  Orion Edwards

如何确定.NET程序使用的内存量?

  •  7
  • Orion Edwards  · 技术社区  · 16 年前

    似乎经常有人说任务管理器不能准确地指示进程使用了多少内存。

    如果事实确实如此,那么找到这些东西最简单的方法是什么?

    我想知道:

    • 正在使用的总内存(无论是在RAM中,还是在分页中,还是在其他地方)
    • 正在使用的总RAM(在机器有大量可用物理RAM的情况下运行,因此希望强制调出的内容不是问题)
    • 程序实际使用的总内存(不计算GC保留的额外开销)
    • 我的程序单独使用的总内存使用量(不计算共享库/共享内存)
    • 共享内存使用总量。
    7 回复  |  直到 16 年前
        1
  •  8
  •   moobaa    16 年前

    抓住 Process Explorer ,右键单击->属性列表中的进程,然后单击“.net”选项卡。从组合框中选择“.net clr memory”,您将获得更多有关进程的实时信息,而您将不知道如何处理;)

        2
  •  3
  •   Lars Truijens    16 年前

    http://memprofiler.com/ 是一个非常好的.NET内存分析器。但是微软内置的Windows性能监视器(Perfmon)也会提供这些数据。见 http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/ 为此。

        3
  •  1
  •   BobbyShaftoe    16 年前

    您可以做一些事情,但我相信,如果您认真分析您的应用程序,最好的事情是使用红门蚂蚁分析器:

    http://www.red-gate.com/Products/ants_profiler/index.htm

    这个软件非常全面,可以很好地了解你的应用程序提供的内存使用情况和其他指标。

        4
  •  1
  •   Guge    16 年前

    启动性能监视器(perfmon.exe)并查看.NET CLR内存性能对象。每个正在运行的.NET程序都有自己的实例。你应该能在那里找到你想要的。

        5
  •  0
  •   rbrayb    16 年前

    Process Explorer 如果双击某个进程,将向您显示其中的一些内容。

        6
  •  0
  •   flesh    16 年前

    有一些很好的特点 SysInternals ProcessExplorer包括一个.NET探查器,但是如果您需要一个pro工具,Ants是一种可行的方法。

        7
  •  0
  •   TheCodeMonk    16 年前

    我也使用了memprofiler,它极大地帮助了我们。