1

我正在尝试创建一个可以监控应用程序性能时间的性能计数器,其中之一是 Google Chrome。但是,我注意到我为 chrome 获得的性能时间异常低 - 我在任务管理器下查看我的问题,即 chrome 有多个以完全相同的名称运行的进程,但每个进程都有不同的工作集大小因此(我相信)不同的处理器时间。我试过这样做:

// get all processes running under the same name, and make a performance counter
// for each one.
Process[] toImport = Process.GetProcessesByName("chrome");

        instances = new PerformanceCounter[toImport.Length];

        for (int i = 0; i < instances.Length; i++)
        {

           PerformanceCounter toPopulate = new PerformanceCounter
                ("Process", "% Processor Time",
                    toImport[i].ProcessName,
                   true);

            //Console.WriteLine(toImport[i].ProcessName + "#" + i);

            instances[i] = toPopulate;
        }

但这似乎根本不起作用 - 我只是多次监控相同的过程。谁能告诉我一种方法来监视具有相同名称的单独进程?

4

2 回答 2

1

打开perfmon看看。您需要使用类似的名称,chrome#2或者,可能,chrome_2

于 2010-04-24T04:09:55.650 回答
1

重要的是确保您没有在实例名称中使用“#”。值得阅读此http://msdn.microsoft.com/en-us/library/system.diagnostics.performancecounter.instancename.aspx并特别注意字符映射 - 它只花了我几个小时。

于 2011-04-05T12:15:16.667 回答