1
A
回答
2
在普通的C,這是不可能的,但因爲這個問題也被標記爲「窗口」:
CPU使用率是CPU時間的實時分配。 GetThreadTimes和GetProcessTimes函數爲您提供這些信息(其中包括Joachim Pileborg上面提到的性能計數器等其他功能,但我認爲這可能更容易)。
您可能還想首先使用CreateToolhelp32Snapshot來了解根本存在的進程和線程。您需要將線程/進程ID轉換爲句柄,但我想這不會是一個很大的障礙(即OpenProcess
)。可以使用確定
2
在C中,總CPU使用率Performance Counters(有一個小錯字在示例代碼:sleep
必須被改變到Sleep
)。我想推薦使用WMI。在C++,C#,Delphi等中,我推薦使用WMI。
== ==編輯
我找到了一個方法來得到每個進程的CPU使用率。例如,爲了獲得微軟的Outlook的CPU負載,在上面的例子中計數器路徑改成這樣:
PdhAddCounter(query, TEXT("\\Process(OUTLOOK)\\% Processor Time"), 0, &counter);
如果你有相同的可執行文件運行多個實例,你可以使用indexes。 This MSDN example也是非常有用的。
相關問題
- 1. 使用C++獲取一個進程的cpu使用(win32)
- 2. 獲取當前進程的CPU使用率用C
- 3. 在Linux中用C++獲取ram和cpu進程
- 4. 使用WMI獲取C#中每個進程的CPU和RAM使用情況?
- 5. c#單線程獲取線程的CPU使用情況
- 6. 獲取子進程的CPU(用戶和系統)和實際使用時間C
- 7. c#獲得高CPU使用率的進程
- 8. 獲取使用C#的進程描述
- 9. 使用powershell獲取特定進程的CPU%
- 10. 從wmi獲取每個進程的CPU使用情況
- 11. 獲取CPU使用率最高的進程
- 12. 獲得進程的CPU使用量進程ID
- 13. 如何在Linux中獲取特定進程的CPU利用率
- 14. 獲取Linux進程資源使用情況(CPU,磁盤,網絡)
- 15. C#從特定進程(性能計數器)獲取CPU和RAM
- 16. 如何使用C++在WMI中獲取CPU使用率?
- 17. 使用WMI從系統獲取進程列表,使用CPU使用率> 90%
- 18. 如何在Linux中使用C獲取物理CPU的數量?
- 19. 如何在Linux中獲取進程的CPU信息?
- 20. 用C/C++程序獲取串行ARM CPU信息
- 21. 如何從java應用程序獲取進程(外部程序)時間,進程運行的CPU使用情況?
- 22. C#獲取進程API的用法
- 23. 在C++/windows中獲取當前cpu使用情況的具體過程
- 24. 如何在C#中爲每個正在運行的進程獲取cpu使用百分比
- 25. 使用OperatingSystemMXBean獲取CPU使用率
- 26. w3wp進程的高CPU使用率
- 27. 測量C++和Java進程的CPU使用率
- 28. 性能計數器獲取進程的CPU和內存使用情況
- 29. 獲取CPU和RAM的使用情況
- 30. C#使用更少的CPU對進程進行多線程處理速度要快得多CPU
你不能在標準C中做到這一點。你需要使用特定於實現的庫。既然你包含了windows標籤,你的意思是你想使用Windows API而不是「只是C」? –
你可能會對[性能指標]感興趣(http://msdn.microsoft.com/en-us/library/windows/desktop/aa373083%28v=vs.85%29.aspx)。 –
有可能我已經開發出了,對於我有一個問題,你有多少個處理器在計算機上?你有Linux或Windows? – JMBise