如何知道进程自创建以来分配的总内存量

时间:2016-08-30 16:25:02

标签: c# .net memory memory-management clr

我们正在尝试设置一个回归测试环境,我们的应用程序将安装在该环境中,重放一些流量,然后与一个" prod等级"同一个应用程序的版本。在重播之后,我们将比较来自商业和技术两个版本的关键指标。

其中一个衡量标准是流程自创建以来分配了多少内存,以确保当前版本的分配不超过" prod等级"版。但我无法在PerformanceCounters或System.Diagnostics中找到任何能够为我们提供此信息的指标。

我知道GC会一直释放内存,但是我想要计算的是,已经分配了多少像System.Diagnostics.Process.GetCurrentProcess().TotalProcessorTime那样的内存用于消耗的CPU(至少我认为是这样)。 / p>

编辑:换句话说,我想要测量的是gen0-1-2 PLUS中的总内存,这些内存已经被我的进程中运行的众多GC释放。

提前致谢。

1 个答案:

答案 0 :(得分:-1)

您可以通过运行对话框添加性能计数器,只需键入perfmon即可。然后只需选择计数器,然后使用诊断程序引用它。这是我在https://www.youtube.com/watch?v=niKP91D50Ko

上完成的教程

其基础也是

using system.Diagnostics;

PerformanceCounter perfCPUCounter  = new PerformanceCounter(" "," "," ");

在引文中,您希望将ObjectCounterInstance放入引文中。如果有三个---那么它就不会遗漏任何东西。