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. 如何在Windows上獲取PHP中每個CPU核心的負載?
- 2. C進程相對於核心的CPU負載
- 3. 如何獲得超過2個核心的CPU使用率?
- 4. 每個核心有多少CPU時間?
- 5. 如何獲得C#中每個處理器的CPU使用率?
- 6. 如何使用adb命令測量Micromax C4中的每個核心CPU利用率/負載(以%爲單位)?
- 7. 如何獲得真正的最大cpu核心速度?
- 8. PHP在linux服務器上獲得每個核心的CPU使用率
- 9. 每個JVM或每個CPU核心的線程數
- 10. 獲取JavaScript中的CPU核心數量?
- 11. 如何從htop命令中提取內核的CPU負載?
- 12. 如何在android上使用每個cpu核心
- 13. RcppArmadillo在幾個CPU核心
- 14. 如何在C中獲得核心映射的進程?
- 15. 在Asp.Net核心核心如何獲得網站的IP地址?
- 16. 如何獲得一個程序在Linux和CPU負載下執行的內核數量
- 17. 如何在C中獲得cpu狀態#
- 18. 如何在c#中獲得CPU頻率
- 19. CPU雙核心MIPS
- 20. 多核心的Linux負載均衡
- 21. jffs2_gcd_mtd1 CPU負載
- 22. 如何將muti核心CPU轉換爲單核心繫統
- 23. android如何強制cpu核心離線(關閉核心)
- 24. 性能問題:單個CPU核心與單個CUDA核心
- 25. 如何使用PowerShell腳本獲取每個內核或處理器的負載?
- 26. 用於在linux中獲取CPU負載的C API
- 27. 每個IIS網站的Cpu核心(進程)
- 28. 獲取CPU核心電壓值
- 29. FPGA上的CPU軟核心
- 30. 如何獲得xen中的cpu內核使用率?
[如何獲得在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