1

我正在尝试使用内存性能计数器:

System.Diagnostics.PerformanceCounter theMemCounter = 
    new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes",
    System.Diagnostics.Process.GetCurrentProcess().ProcessName, true);

var memStart = theMemCounter.NextValue();

但在第二行中,我收到以下错误:

Counter is single instance, instance name 'WebDev.WebServer40' is not valid for this counter category.

问题是什么?

4

1 回答 1

2

Ottoni,我认为您不能为这个特定的性能计数器指定一个进程,因为它监视整个系统上的可用内存。

也许您正在寻找的 perfcounter 是“.NET CLR Memory(INSTANCE)# Bytes in all Heaps”或 .NET CLR Memory 类别中的其他一些,它能够监视所有或指定的 .net 应用程序的内存使用情况。

有关此类别的更多信息:http: //msdn.microsoft.com/en-us/library/x2tyfybc.aspx

- 编辑

解决方案:

System.Diagnostics.PerformanceCounter theMemCounter =
    new System.Diagnostics.PerformanceCounter("Process", "Working Set",
    System.Diagnostics.Process.GetCurrentProcess().ProcessName);

var memStart = theMemCounter.NextValue() / 1024 / 1024;
于 2012-04-17T13:26:24.453 回答