1
A
回答
4
正如Doug T.在前面指出的,我之前發佈了一個幫助類來查詢性能計數器的值。該類的用法非常簡單,您只需爲性能計數器提供字符串即可。 http://askldjd.wordpress.com/2011/01/05/a-pdh-helper-class-cpdhquery/
但是,我在我的博客上發佈的代碼在實踐中進行了修改。從您的評論看來,您似乎只想查詢一個字段。
在這種情況下,請嘗試將以下函數添加到我的CPdhQuery類。
double CPdhQuery::CollectSingleData()
{
double data = 0;
while(true)
{
status = PdhCollectQueryData(hQuery);
if (ERROR_SUCCESS != status)
{
throw CException(GetErrorString(status));
}
PDH_FMT_COUNTERVALUE cv;
// Format the performance data record.
status = PdhGetFormattedCounterValue(hCounter,
PDH_FMT_DOUBLE,
(LPDWORD)NULL,
&cv);
if (ERROR_SUCCESS != status)
{
continue;
}
data = cv.doubleValue;
break;
}
return data;
}
例如, 得到了處理器時間
counter = boost::make_shared<CPdhQuery>(std::tstring(_T("\\Processor Information(_Total)\% Processor Time")));
要獲取文件讀取字節/秒:
counter = boost::make_shared<CPdhQuery>(std::tstring(_T("\\System\\File Read Bytes/sec")));
要獲取%提交字節:
counter = boost::make_shared<CPdhQuery>(std::tstring(_T("\\Memory\\% Committed Bytes In Use")));
要獲得的數據,執行此操作。
double data = counter->CollectSingleData();
我希望這有助於。
...艾倫
0
一些常用性能值有API調用來直接獲取它們。例如,總處理器時間可從GetSystemTimes獲得,您可以自己計算百分比。
如果這不是一個選項,那麼Performance Data Helper庫提供了一個適中的簡單的性能數據接口。
相關問題
- 1. Windows性能計數器從PerfMon中消失
- 2. SQL Server PerfMon計數器詳細信息
- 3. 配置perfmon計數器的腳本
- 4. * .npy windows的閱讀器
- 5. 如何在perfmon工具中保存計數器?
- 6. 設計XML閱讀器
- 7. Perfmon計數器在腳本中不起作用
- 8. 如何告訴屏幕閱讀器應閱讀數據內容?
- 9. 如何解釋Perfmon數據?
- 10. 如何計算C#中SQLite閱讀器中返回的行數?
- 11. 閱讀Windows時鐘?
- 12. 如何複製閱讀器?
- 13. 閱讀windows phone的動態xml閱讀器?
- 14. 如何閱讀「」
- 15. Perflib 2添加計數器時發生崩潰(來自Perfmon)
- 16. 如何讀取JAWS屏幕閱讀器
- 17. Windows 8博客閱讀器示例
- 18. Windows 8手機 - 訪問NFC閱讀器?
- 19. 禁用默認Windows Phone NFC閱讀器
- 20. 如何閱讀
- 21. 如何閱讀uwsgi統計輸出
- 22. 如何閱讀
- 23. 如何閱讀Jenkins參數?
- 24. 如何閱讀JSON數據
- 25. 如何閱讀SendReplyToReceive參數
- 26. 閱讀器vs緩衝閱讀器
- 27. BlackBerry閱讀器中的qr閱讀器
- 28. Perfmon無法在Windows 7上創建數據收集器集x64
- 29. 有沒有辦法打開指定計數器的PerfMon?
- 30. 如何在Windows上爲Perfmon/LogMan指定性能計數器時僅獲取w3wp實例?
看看我的朋友的博客文章。我們使用這些代碼來製作一些內部工具。 http://askldjd.wordpress.com/2011/01/05/a-pdh-helper-class-cpdhquery/ –
謝謝,但我正在尋找只讀一個計數器值的代碼。我不想用通配符進行查詢。 例如,我需要讀取以下計數器 \\ Processor Information(_Total)\%Processor Time – RedFox