linux c 控制cpu占用率
之前在<编程之美>上提到说控制cpu的使用率使能在任务管理器上画一条正弦线
现在下面提供一个在Linux平台上实现的控制cpu频率在某个值
cpu_load.c
#include <iostream>
#include <pthread.h>
#include <time.h>
#include <math.h>
#include <unistd.h>using namespace std;typedef long long int int64;
const int NUM_THREADS = 1; //CPU core nums
int INTERVAL = 100;
int cpuinfo = 15; //CPU utilization rate// time unit is "ms"
int64 GetTickCount()
{timespec now;int64 sec, nsec;clock_gettime(CLOCK_MONOTONIC, &now);sec = now.tv_sec;nsec = now.tv_nsec;return sec * 1000 + nsec / 1000000;
}void* CPUCost(void *args)
{int busyTime = INTERVAL * cpuinfo / 100;int idleTime = INTERVAL - busyTime;int64 startTime = 0;std::cout << "XXXX CPUCost" << std::endl;std::cout << "XXXX cpuinfo = " << cpuinfo << std::endl;/** within INTERVAL ms, INTERVAL = busyTime + idleTime,* spend busyTime ms to let cpu busy,* spend idleTime ms top let cpu idle*/while (true) {startTime = GetTickCount();while((GetTickCount() - startTime) <= busyTime);usleep(idleTime * 1000);}
}int main(int argc, char **argv)
{pthread_t t[NUM_THREADS];int ret;std::cout << "please input cpu utilization rate" << std::endl;std::cin >> cpuinfo;for(int i = 0; i < NUM_THREADS; i++) {ret = pthread_create(&t[i], NULL, CPUCost, NULL);if(ret)std::cout << "XXXX create err" << std::endl;}pthread_exit(NULL);return 0;
}
编译: g++ cpu_load.c -lpthread -lrt -o cpu_load
1.设置cpu的占用率为10%
2.设置cpu的占用率为60%
3.设置cpu的占用率为100%
程序需要在空闲的机器上运行,才能比较精确地获取到设置的CPU利用率
linux c 控制cpu占用率相关推荐
- Linux 下杀毒软件 CPU 占用率为何持续升高?
作者 | beyondma 责编 | 张文 来源 | CSDN 博客 头图 | CSDN 下载自视觉中国 最近笔者遇到这样一个相对比较疑难的事件,某个在 Linux 下运行的杀毒软件启动后,在某些情 ...
- Linux 下杀毒软件 CPU 占用率为何持续升高
作者 | beyondma 责编 | 张文 来源 | CSDN 博客 头图 | CSDN 下载自视觉中国 最近笔者遇到这样一个相对比较疑难的事件,某个在 Linux 下运行的杀毒软件启动后,在某些情 ...
- 疑难杂症:Linux下杀毒软件CPU占用率为何持续升高
最近笔者遇到这样一个相对比较疑难的事件,某个在Linux下运行的杀毒软件启动后在,某些情况下CPU占用率会持续升高,而且在交易量较高的情况下极易复现.而奇怪的是我们之前已经对于杀毒软件的CPU使用率进 ...
- Linux下解决CPU占用率100%问题的步骤
CPU占用率100%问题的解决步骤 1. 确定cpu占用率高的进程ID - PID 2. 查看进程中cpu占用率高的线程ID - TID 3. 将线程ID - TID 转换成16进制 - XTID 4 ...
- Linux系统中CPU占用率过高问题原因分析
背景: 在服务器上部署了一个项目,发现项目部署完成之后,CPU占用率居高不下,现将原因分析过程总结如下: 通过top命令查看CPU占用率,分析CPU占用过高的原因 步骤一: 通过top命令,查看占用C ...
- linux看线程占用率,查看linux线程的CPU占用率
测试代码如下: #include #include void *thread_routine(void *arg) { prctl(PR_SET_NAME, "child_thread&qu ...
- linux控制cpu占用率
之前在<编程之美>上提到说控制cpu的使用率使能在任务管理器上画一条正弦线 现在下面提供一个在Linux平台上实现的控制cpu频率在某个值 cpu_load.c #include < ...
- 编程之美-控制CPU占用率曲线方法整理
[试题描述] 方法一:简单的解法 方法二:使用GetTickCount()和Sleep() 方法三:你能动态适应的解法 方法四:正弦曲线 方法五: 附:一些与线程/进程/系统效能相关的API
- 编程之美:让CPU占用率曲线听你指挥
题目:写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: 1. CPU的占用率固定在50%, ...
最新文章
- WinAPI: FlattenPath、WidenPath
- DzzOffice增加应用对扩展名文件的支持设置,将会在Beta中提供。
- 接地脚是什么意思_史上最全的接地系统详解,值得收藏
- Mapx的VC开发实践
- linux 登入用户记录,linux记录所有用户登陆及执行过的命令脚本
- 手滑的悲剧!女老板把1000000元转错账户 对方竟立马关机失联…
- lombak-插件使用
- C#-设置button颜色
- 软件开发过程与项目管理(9.软件项目配置管理计划)
- ArcGIS之图斑净面积计算工具(支持二调,三调)
- Vegas2020注册机
- 第六篇:A133 用DragonSN工具刷SN号,MAC地址细节问题
- 03. JavaMail 发送HTML邮件
- Cadence Allegro 中skill应用教程:让代码替我们打工
- 计算机科学科普(一):什么是计算机
- wordpress创建_如何在WordPress中创建专业的在线简历
- 从MDK分散加载文件学习STM32启动流程
- 猫眼电影经典电影爬取
- 机器学习:随机森林原理 OOB等
- Choerodon前端环境变量方案