【c++】c++ cpu核占用情况软件

6 篇文章 0 订阅
本文介绍如何在Docker环境中使用valgrind和kcachegrind进行程序的CPU占用情况分析。通过安装必要的工具,运行valgrind捕获程序调用信息,并利用kcachegrind进行可视化分析,帮助开发者理解哪些部分消耗较多的CPU资源。
摘要由CSDN通过智能技术生成

程序运行在docker环境内,怎么分析程序cpu占用情况。

1.环境安装 

# docker内外
sudo apt install valgrind

# docker外
sudo apt install kcachegrind

2.运行

valgrind --tool=callgrind your_program

3.性能分析

kcachegrind callgrind.out.*

点到主程序,看其占用情况,其中百分之多少就是占了百分之多少个核,哪些比较耗CPU资源,耗多少等。会有一个图。

注意:如果出现什么缺失,可以直接网上查,docker外安装就可以了。

你可以使用C++编写程序来获取CPU使用率。具体实现方式可能因操作系统而异,以下是在Windows操作系统下获取CPU使用率的示例代码: ```c++ #include <iostream> #include <windows.h> #include <pdh.h> #pragma comment(lib, "pdh.lib") int main() { PDH_HQUERY cpuQuery; PPDH_COUNTER_PATH_ELEMENTS pCounterPathElements = NULL; PDH_STATUS status; DWORD dwCounterPathSize; HCOUNTER cpuTotal; PDH_FMT_COUNTERVALUE counterVal; // 初始化 PDH 计数器 PdhOpenQuery(NULL, NULL, &cpuQuery); dwCounterPathSize = 0; status = PdhExpandCounterPath(L"\\Processor(_Total)\\% Processor Time", NULL, &dwCounterPathSize); pCounterPathElements = (PPDH_COUNTER_PATH_ELEMENTS)malloc(dwCounterPathSize); status = PdhExpandCounterPath(L"\\Processor(_Total)\\% Processor Time", pCounterPathElements, &dwCounterPathSize); PdhAddCounter(cpuQuery, pCounterPathElements->szFullPath, NULL, &cpuTotal); free(pCounterPathElements); // 获取 CPU 使用率 PdhCollectQueryData(cpuQuery); Sleep(1000); // 等待 1 秒 PdhCollectQueryData(cpuQuery); PdhGetFormattedCounterValue(cpuTotal, PDH_FMT_DOUBLE, NULL, &counterVal); std::cout << "CPU 使用率:" << counterVal.doubleValue << "%" << std::endl; PdhCloseQuery(cpuQuery); return 0; } ``` 这段代码中,首先通过 PDH API 初始化计数器并添加要监控的计数器(这里是获取总CPU使用率),然后等待一秒钟后再次获取计数器值,并输出结果。你可以通过类似的方式在其他操作系统上实现获取 CPU 使用率的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

聿默

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值