我们在开发服务程序时,有时需要反馈服务器CPU各核心的当前使用率情况,观察负载是否均衡。
在Windows系统,我们可以使用以下API:
| API | 说明 |
|---|---|
| PdhOpenQuery | 创建一个查询句柄,用于收集性能统计数据 |
| PdhAddEnglishCounter | 将需要查询的处理器描述信息(英语格式,用以规避多语言问题)添加到查询列表 |
| PdhCollectQueryData | 收集查询的原始数据 |
| PdhGetFormattedCounterValue | 将已收集的原始数据转换为可显示的格式 |
| PdhCloseQuery | 关闭查询句柄 |
以下为测试程序,程序向控制台输出每个逻辑核心的CPU使用率。其中0%为最小使用率,100%为最大使用率。
#include <thread>
#include <Pdh.h> // 引入相关API的头文件
#pragma comment(lib, "pdh.lib") // 关联库文件
// 设置一个查询数量的最大值
#define MAX_QUERY_CORES 1024
int main(int argc, char **argv) {
int num_query_cores = (int)std

本文介绍了如何在Windows系统中使用PdhAPI收集和格式化处理器核心的CPU使用率,提供了一个C++程序示例,展示了如何创建查询、添加计数器并实时输出各核心的负载情况。


被折叠的 条评论
为什么被折叠?



