windows下获取cpu 使用率的方法大概有以下这三种:
- windows 自带的API ,一般包含在头文件windows.h中
- Performance Data Helper (PDH),性能数据助手
- Windows Management Instrumentation(WMI),windows管理规范
其他两种方法网上都有相应的例子,读者感兴趣可以自行查阅,这里介绍一下使用pdh库来获取系统性能数据(以cpu使用率为例)的方法。
根据pdh使用的官方文档,使用pdh 库获取性能数据需要执行以下几个步骤:
- 创建查询(Create a query)
- 添加查询到计数器(Add counters to the query)
- 收集性能数据(Collect the performance data)
- 显示性能数据(Display the performance data)
- 关闭查询(Close the query)
创建查询
在使用pdh 库之前,我们需要包含相应的头文件和加载相应的库:
#include <Pdh.h>
...
#pragma comment(lib,"pdh.lib")
创建查询使用函数是PdhOpenQuery,我们看一下官方文档对于这个函数的定义。
PDH_STATUS PdhOpenQuery(
_In_ LPCTSTR szDataSource,
_In_ DWORD_PTR dwUserData,
_Out_ PDH_HQUERY *phQuery
);
- szDataSource
该参数用来指定日志文件的名字以获取性能数据,一般设置成NULL,表示实时获取数据。 - dwUserData
和查询相关的值,不特别指定一般也是NULL。 - phQuery
用于查询的句柄,这个稍后会用到。
好了,接下来就开始查询:
HQUERY query;
PDH_STATUS status = PdhOpenQuery(NULL, NULL, &query);
需要注意的是,如果执行成功ÿ