簡體   English   中英

獲取特定進程在C ++ / Windows中的當前cpu用法

[英]Getting current cpu usage in c++/windows for particular process

我想在代碼中計算特定應用程序的當前CPU使用率。 我在互聯網上查找並找到了用於Windows的pdh庫。 當我嘗試它時,我得到的是總體的cpu使用率,而不是一個進程的cpu使用率。

PdhAddCounter(hquery, TEXT("\\Processor(_Total)\\% Processor Time"),0,&counter);

那么我如何使用這條線來獲取特定進程的cpu使用率? 我嘗試將_Total替換為進程名稱(explorer)。 當時我的CPU使用率為0。 但是我檢查了資源監視器,一次打開許多窗口將cpu的使用率提高了20%。 仍然在日志文件中,CPU使用率顯示為0。

誰能幫我這個?

提前致謝。

您需要使用GetProcessTimes

不幸的是,它不會給您“ CPU使用率”,而是會給您自進程啟動以來的CPU時間。 因此,要獲得CPU使用率,您需要先采集一個樣本,存儲該樣本,然后在已知的時間量后再采樣另一個樣本,然后計算時間(如果您想知道總的使用情況,則需要當然,將usertimekerneltime相加)。

您可以檢查為一例。 解釋了該項目中的所有內容。 它將根據進程ID提供內存(任務管理器中顯示的方式相同)

謝謝,大山

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM