如何确定我的.NET程序使用了多少内存?

时间:2008-12-10 21:30:18

标签: .net profiling memory-management

似乎经常说任务管理器无法准确指示进程正在使用多少内存。

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

我想知道:

  • 正在使用的总内存(无论是RAM还是分页或其他)
  • 正在使用的总RAM(在机器有大量免费物理RAM的情况下运行,因此强行转出的内容有望成为问题)
  • 程序实际使用的总内存(不包括GC保留的额外开销)
  • 我的程序单独使用的总内存使用量(不包括共享库/共享内存)
  • 共享内存总使用量。

7 个答案:

答案 0 :(得分:8)

抓取Process Explorer,右键单击 - >在列表中对该进程进行属性,然后单击“.NET”选项卡。从组合框中选择“.NET CLR Memory”,你将获得更多关于你的过程的实时信息,而不是你知道如何处理;)

答案 1 :(得分:3)

http://memprofiler.com/是一个非常好的.Net内存分析器。但微软在Windows性能监视器(perfmon)中的构建也将为您提供这些数据。请参阅http://dotnetdebug.net/2005/06/30/perfmon-your-debugging-buddy/

答案 2 :(得分:1)

你可以做一些事情,但我相信最好的事情,如果你真的想要分析你的应用程序,就是使用Red Gate的Ants Profiler:

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

该软件非常全面,可以很好地了解您的应用程序提供的各种内存使用情况和其他类型的指标。

答案 3 :(得分:1)

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

答案 4 :(得分:0)

如果您双击某个流程,

Process Explorer会向您显示其中一些内容。

答案 5 :(得分:0)

SysInternals ProcessExplorer中有一些很好的功能,包括.NET分析器,但如果你需要专业工具,ANTS就是你的选择。

答案 6 :(得分:0)

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