代码之家  ›  专栏  ›  技术社区  ›  MarkPflug

使用流程性能计数器,我如何知道实例与哪个流程关联?

  •  0
  • MarkPflug  · 技术社区  · 14 年前

    在查询“进程”性能计数器类别的实例时,一个进程的多个实例可能具有相同的名称。

    例如,此代码:

    var cat = new PerformanceCounterCategory("Process");
    
    var names = cat.GetInstanceNames();
    
    foreach (var name in names)
        Console.WriteLine(name);
    

    ... 互联网浏览器 探索1 探索2 ...

    1 回复  |  直到 14 年前
        1
  •  2
  •   MarkPflug    14 年前

    “Process”类别中有一个名为“ID Process”的PerformanceCounter,它将返回性能计数器实例对应的进程的pid。

    var cat = new PerformanceCounterCategory("Process");
    
    var names = cat.GetInstanceNames();
    
    foreach (var name in names.OrderBy(n => n))
    {
        var pidCounter = new PerformanceCounter("Process", "ID Process", name, true);
        var sample = pidCounter.NextSample();
        Console.WriteLine(name + ": " + sample.RawValue);
    }
    

    这将打印:

    浏览:548

    探索1:1268

    探索2:4336