如何使用Visual C++以編程方式查找在System Idle Process
(在任務管理器中)中顯示的CPU時間?Visual C++:如何獲得CPU時間?
1
A
回答
2
你需要的是這樣的事情...
NTSTATUS hStatus;
SYSTEM_PERFORMANCE_INFORMATION stSysPerfInfo;
hStatus = NtQuerySystemInformation(SystemPerformanceInformation, &stSysPerfInfo, sizeof(stSysPerfInfo), NULL);
if (hStatus != NO_ERROR)
{
// Do work....
}
還是來看看這個「任務管理器」
http://reactos.freedoors.org/Reactos%200.3.8/ReactOS-0.3.8-REL-src/base/applications/taskmgr/
0
從來沒有嘗試過,但GetProcessTimes似乎是要走的路。
1
我沒有窗戶周圍,真正知道問題是什麼,但也許你可以看看std :: clock標準函數來測量CPU使用時間。如果您請求兩次,則經過時間段內的滴答數量可通過常量CLOCKS_PER_SEC轉換爲秒數。
結果將是您的進程花費的CPU時間,這與掛鐘不同。它可以在多線程應用程序中更高,或者如果您的代碼_sleep_s更低,因爲它不會花費時間。
void f()
{
std::clock_t init = std::clock();
// perform some operations
std::clock_t end = std::clock();
std::cout << end-init << " cpu ticks spent, or about "
<< (end-init)/CLOCKS_PER_SEC << " seconds." << std::endl;
}
這不會計算第一次測量之前的CPU時間,但它可以給您一個標準方式的密切測量。
0
我會使用WMI Performance Counters,特別是Process /%ProcessorTime/Idle。
閱讀這篇文章,對於如何做到這一點在C# http://www.codeproject.com/KB/dotnet/perfcounter.aspx
和C++:http://msdn.microsoft.com/en-us/library/aa394558(VS.85).aspx
希望這回答了你的問題。
0
另請參閱我的帖子:http://osequal.blogspot.com/2009/03/accurate-time-measurement-for.html。具體來說,檢查Intel TBB庫中tick_count的執行情況:http://cc.in2p3.fr/doc/INTEL/tbb/doc/html/a00199.html
相關問題
- 1. 如何在C中獲得cpu狀態#
- 2. 如何在c#中獲得CPU頻率
- 3. C++:我如何獲得unix時間?
- 4. 「線程」如何獲得CPU和時間片?
- 5. 如何獲得PHP中使用的真實CPU時間?
- 6. 如何從vspere api獲得100%的CPU時間
- 7. python on win32:如何獲得絕對時間/ CPU週期數
- 8. 如何獲得所有線程的累積cpu時間
- 9. 如何獲得Swift中函數使用的CPU時間
- 10. R如何使用foreach獲得總CPU時間?
- 11. 如何讓Java線程獲得相當數量的CPU時間
- 12. 如何獲得CPU溫度?
- 13. 如何在C++(Linux)中獲得CPU時鐘速度?
- 14. C++:如何獲得實時時間和本地時間?
- 15. 如何從c時間減去開始時間獲得總時間#
- 16. 如何獲得在C#(Visual Studio中)
- 17. 如何在Visual C++上獲得MAC
- 18. 如何在GMT時間獲得時間?
- 19. Unity - 如何獲得時間?
- 20. 如何獲得總時間?
- 21. 如何獲得Jira時間?
- 22. C時間延遲豬CPU
- 23. 如何獲得時間間隔秒數在目標c
- 24. 如何獲得兩個日期之間的時間跨度C
- 25. 如何獲得所有CPU信息
- 26. 如何獲得Qt的CPU使用率
- 27. 如何獲得Python中的CPU溫度?
- 28. 如何獲得CPU的currentClockSpeed,minClockSpeed,maxClockSped
- 29. 如何獲得java中的cpu類型? 。
- 30. 如何獲得Linux中的總CPU使用率(C++)