使用Win32API,获取处理器逻辑核心的当前使用率

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

我们在开发服务程序时,有时需要反馈服务器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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值