之前在<编程之美>上提到说控制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占用率相关推荐

  1. Linux 下杀毒软件 CPU 占用率为何持续升高?

    作者 | beyondma  责编 | 张文 来源 | CSDN 博客 头图 | CSDN 下载自视觉中国 最近笔者遇到这样一个相对比较疑难的事件,某个在 Linux 下运行的杀毒软件启动后,在某些情 ...

  2. Linux 下杀毒软件 CPU 占用率为何持续升高

    作者 | beyondma  责编 | 张文 来源 | CSDN 博客 头图 | CSDN 下载自视觉中国 最近笔者遇到这样一个相对比较疑难的事件,某个在 Linux 下运行的杀毒软件启动后,在某些情 ...

  3. 疑难杂症:Linux下杀毒软件CPU占用率为何持续升高

    最近笔者遇到这样一个相对比较疑难的事件,某个在Linux下运行的杀毒软件启动后在,某些情况下CPU占用率会持续升高,而且在交易量较高的情况下极易复现.而奇怪的是我们之前已经对于杀毒软件的CPU使用率进 ...

  4. Linux下解决CPU占用率100%问题的步骤

    CPU占用率100%问题的解决步骤 1. 确定cpu占用率高的进程ID - PID 2. 查看进程中cpu占用率高的线程ID - TID 3. 将线程ID - TID 转换成16进制 - XTID 4 ...

  5. Linux系统中CPU占用率过高问题原因分析

    背景: 在服务器上部署了一个项目,发现项目部署完成之后,CPU占用率居高不下,现将原因分析过程总结如下: 通过top命令查看CPU占用率,分析CPU占用过高的原因 步骤一: 通过top命令,查看占用C ...

  6. linux看线程占用率,查看linux线程的CPU占用率

    测试代码如下: #include #include void *thread_routine(void *arg) { prctl(PR_SET_NAME, "child_thread&qu ...

  7. linux控制cpu占用率

    之前在<编程之美>上提到说控制cpu的使用率使能在任务管理器上画一条正弦线 现在下面提供一个在Linux平台上实现的控制cpu频率在某个值 cpu_load.c #include < ...

  8. 编程之美-控制CPU占用率曲线方法整理

    [试题描述] 方法一:简单的解法 方法二:使用GetTickCount()和Sleep() 方法三:你能动态适应的解法 方法四:正弦曲线 方法五: 附:一些与线程/进程/系统效能相关的API

  9. 编程之美:让CPU占用率曲线听你指挥

    题目:写一个程序,让用户来决定Windows任务管理器(Task Manager)的CPU占用率.程序越精简越好,计算机语言不限.例如,可以实现下面三种情况: 1.    CPU的占用率固定在50%, ...

最新文章

  1. WinAPI: FlattenPath、WidenPath
  2. DzzOffice增加应用对扩展名文件的支持设置,将会在Beta中提供。
  3. 接地脚是什么意思_史上最全的接地系统详解,值得收藏
  4. Mapx的VC开发实践
  5. linux 登入用户记录,linux记录所有用户登陆及执行过的命令脚本
  6. 手滑的悲剧!女老板把1000000元转错账户 对方竟立马关机失联…
  7. lombak-插件使用
  8. C#-设置button颜色
  9. 软件开发过程与项目管理(9.软件项目配置管理计划)
  10. ArcGIS之图斑净面积计算工具(支持二调,三调)
  11. Vegas2020注册机
  12. 第六篇:A133 用DragonSN工具刷SN号,MAC地址细节问题
  13. 03. JavaMail 发送HTML邮件
  14. Cadence Allegro 中skill应用教程:让代码替我们打工
  15. 计算机科学科普(一):什么是计算机
  16. wordpress创建_如何在WordPress中创建专业的在线简历
  17. 从MDK分散加载文件学习STM32启动流程
  18. 猫眼电影经典电影爬取
  19. 机器学习:随机森林原理 OOB等
  20. Choerodon前端环境变量方案

热门文章

  1. ORACLE-删除同一字段中重复值函数
  2. unicode字符显示方框_【硬核】韦东山:字符的编码方式
  3. 5G NR — 基于 GPS 的时间同步
  4. Go 语言编程 — encoding/json 库
  5. OpenStack Placement Project(Rocky to Train)
  6. 2019年企业云呈现五大技术发展趋势
  7. python3 系统监控脚本(CPU,memory,网络,disk等)
  8. 修改react-native项目名称
  9. iOS应用安全之代码混淆实现篇
  10. SpringBoot(二):Web之Filter