5
A
回答
7
您可以使用WMI或System.Diagnostics命名空间。从那里你可以抓住任何你想要的性能计数器(但是它需要一秒(1-1.5秒)来初始化那些 - 读取值正常,只有初始化很慢)
代码可以看起来像这样:
using System.Diagnostics;
public static Double Calculate(CounterSample oldSample, CounterSample newSample)
{
double difference = newSample.RawValue - oldSample.RawValue;
double timeInterval = newSample.TimeStamp100nSec - oldSample.TimeStamp100nSec;
if (timeInterval != 0) return 100*(1 - (difference/timeInterval));
return 0;
}
static void Main()
{
var pc = new PerformanceCounter("Processor Information", "% Processor Time");
var cat = new PerformanceCounterCategory("Processor Information");
var instances = cat.GetInstanceNames();
var cs = new Dictionary<string, CounterSample>();
foreach (var s in instances)
{
pc.InstanceName = s;
cs.Add(s, pc.NextSample());
}
while (true)
{
foreach (var s in instances)
{
pc.InstanceName = s;
Console.WriteLine("{0} - {1:f}", s, Calculate(cs[s], pc.NextSample()));
cs[s] = pc.NextSample();
}
System.Threading.Thread.Sleep(500);
}
}
重要的是,你不能依靠本地.NET计算100nsInverse性能计数器(仅适用于0或100对我的回报...错误?),但你必须自己进行计算,并为你需要的档案每个实例的最后一个CounterSamples的实例(实例代表一个核心或这些核心的总和)。
似乎有对这些实例的命名convetion:
0,0 - 第一CPU第一芯 0,1 - 第一CPU第二芯 0,_Total - 第一CPU _Total的总负载 - 总所有CPU的负载
(未验证 - 不建议依靠它,直到进一步的调查做)......
0
由于内核显示为单独的CPU到操作系统,您使用相同的代码,你会使用,以确定在多处理器机器每个CPU的负荷。一个这样的例子(在C中)是here。请注意,它使用WMI,所以在上面的注释中链接的其他线程可能会让你有大部分的方式。
相关问题
- 1. C进程相对于核心的CPU负载
- 2. 如何获得超过2个核心的CPU使用率?
- 3. PHP在linux服务器上获得每个核心的CPU使用率
- 4. 每个JVM或每个CPU核心的线程数
- 5. 获取JavaScript中的CPU核心数量?
- 6. 如何从htop命令中提取内核的CPU负载?
- 7. 如何在android上使用每个cpu核心
- 8. RcppArmadillo在几个CPU核心
- 9. 如何获得一个程序在Linux和CPU负载下执行的内核数量
- 10. 多核心的Linux负载均衡
- 11. jffs2_gcd_mtd1 CPU负载
- 12. 如何将muti核心CPU转换为单核心系统
- 13. 如何使用PowerShell脚本获取每个内核或处理器的负载?
- 14. 用于在linux中获取CPU负载的C API
- 15. c#HTTP请求的CPU负载很高
- 16. 使用windows命令行获取每个核心的CPU使用率
- 17. 核心数据关系惰性负载?
- 18. 如何获得每个线程的CPU使用率在Mac OSX
- 19. Visual C++:如何获得CPU时间?
- 20. TempDB SQL Server 2000中每个CPU核心的一个物理数据文件
- 21. 如何获得SSL负载平衡?
- 22. CPU核心与在Tomcat
- 23. 利用多个CPU核心和Tensorflow
- 24. CPU负载和CPU温度的C++代码
- 25. ASP.Net核心如何获得EF核心和身份的用户角色
- 26. 高Mysql的负载 - CPU 360%
- 27. 档案Java的CPU负载
- 28. 如何在给定的负载下运行CPU(%CPU利用率)?
- 29. Marklogic中每个森林的核心数
- 30. Spark中每个核心的线程数
[如何获得在C#中的CPU使用情况?(HTTP的可能重复:// stackoverflow.com/questions/278071/how-to-get-the-cpu-usage-in-c) – chakrit 2010-05-30 12:39:17
看到了,但那是全球负载,我需要PER核心。 – JustFogMaxi 2010-05-30 12:40:27
我找到了它: http://www.codegain.com/articles/csharp/windowsforms/how-to-display-processor-usage-of-dual-core-processors.aspx – JustFogMaxi 2010-05-30 13:08:32