我试图弄清楚如何获取特定进程的CPU使用率,但只能找到与总体 CPU使用率有关的信息。
有谁知道如何提取特定应用程序的当前CPU使用率百分比?
最佳答案
性能计数器-进程-处理器时间百分比。
小样代码让您有一个主意:
using System;
using System.Diagnostics;
using System.Threading;
namespace StackOverflow
{
class Program
{
static void Main(string[] args)
{
PerformanceCounter myAppCpu =
new PerformanceCounter(
"Process", "% Processor Time", "OUTLOOK", true);
Console.WriteLine("Press the any key to stop...\n");
while (!Console.KeyAvailable)
{
double pct = myAppCpu.NextValue();
Console.WriteLine("OUTLOOK'S CPU % = " + pct);
Thread.Sleep(250);
}
}
}
}
基于进程ID 查找实例的注意事项:
我不知道有什么更好的方法,希望有人能做到。如果没有,这是给定进程ID和进程名称的一种方法,可以为您的进程找到正确的实例名称。
在
"ID Process"
家族下还有一个称为"Process"
的性能计数器(PC)。它返回实例的PID。因此,如果您已经知道名称(即“chrome”或“myapp”),则可以测试每个实例,直到找到与PID匹配的对象为止。每个实例的命名都很简单:“myapp”,“myapp#1”,“myapp#2” ...等。
... new PerformanceCounter("Process", "ID Process", appName, true);
一旦PC的值等于PID,就可以找到正确的
appName
。然后,您可以将该appName
用于其他计数器。