gpt4 book ai didi

c# - 具有相同名称的所有进程的性能计数器?

转载 作者:行者123 更新时间:2023-11-30 18:02:58 25 4
gpt4 key购买 nike

我目前在我的 Windows 系统上运行 nginx,并且正在制作一个小控制面板来显示我的网络服务器的统计信息。

我正在尝试获取进程的 CPU 使用率和内存使用率的性能计数器,但 nginx 显示为多个进程,根据配置文件中的设置,它可能在 2 - 5 之间变化。我的设置显示两个进程,所以nginx.exe和nginx.exe

我知道要使用什么性能计数器,% Processor TimeWorking Set - Private 但我如何才能获得这两个进程的各个值,以便我可以将它们加在一起以获得最终值?

我尝试使用在 Waffles question 找到的代码但它只能输出两个过程中第一个过程的值。

谢谢。

编辑 - 工作代码

for (int i = 0; i < instances.Length; i++)
{
//i = i + 1;
if (i == 0)
{
toPopulate = new PerformanceCounter
("Process", "Working Set - Private",
toImport[i].ProcessName,
true);
}
else
{
toPopulate = new PerformanceCounter
("Process", "Working Set - Private",
toImport[i].ProcessName + "#" + i,
true);
}

totalNginRam += toPopulate.NextValue();

instances[i] = toPopulate;
}

最佳答案

查看该问题的公认答案。尝试运行 perfmon。具有相同名称的进程将被标识为类似这样的 process#1process#2 等。在您的情况下,它可能是 nginx#1nginx#2

编辑:

您需要将实例名称传递给适当的 constructor overloadInstanceName 属性。根据this , 看起来正确的格式是使用下划线。所以,process_1process_2

关于c# - 具有相同名称的所有进程的性能计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7693979/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com