如何写个程序让cpu占有率达50%
来源:互联网 发布:saas云数据安全 编辑:程序博客网 时间:2024/06/14 12:00
让cpu占有率达50%,这是学习《编程之美》的系列读书笔记。
CPU占有率是在任务管理器的一个刷新周期内,cpu忙着执行应用程序的时间占刷新周期的比例,原理知道了,我们就可以写一个程序让cpu一会忙,一会闲,然后调整忙/闲的比例,这样我们就控制了CPU的占有率。
我们就造出一个大的死循环,里面有两个循环,一个执行程序,一个sleep(),这个函数的功能是执行挂起一段时间,也就是让cpu闲一下。
for(i=0;i<n;i++) 这这个空循环大概有5条汇编代码(没搞懂..)。所以可以执行循环4800000000/5=960000000次/秒。
windows的调动时间片为10毫秒,所以都下调两个数量级,调整为9600000和10.
最终代码如下:
#include <windows.h> //别忘了要include这两个文件,好久没写c了...
#include<stdio.h>
int main()
{
int i;
for(;;)
{
for(i=0;i<9600000;i++) ;
unsigned sleep(10);
}
return 0;
}
剩下的方法2方法3画sinX曲线先不搞,以后算搞windows这套在深入学吧,就学习下解决问题思想。
我的问题:
CPU占有率是在任务管理器的一个刷新周期内,cpu忙着执行应用程序的时间占刷新周期的比例,原理知道了,我们就可以写一个程序让cpu一会忙,一会闲,然后调整忙/闲的比例,这样我们就控制了CPU的占有率。
我们就造出一个大的死循环,里面有两个循环,一个执行程序,一个sleep(),这个函数的功能是执行挂起一段时间,也就是让cpu闲一下。
那我们就计划让cpu工作1秒,休息1秒。
cpu休息一秒:sleep(1000),单位是毫秒。
for(i=0;i<n;i++) 这这个空循环大概有5条汇编代码(没搞懂..)。所以可以执行循环4800000000/5=960000000次/秒。
windows的调动时间片为10毫秒,所以都下调两个数量级,调整为9600000和10.
最终代码如下:
#include <windows.h> //别忘了要include这两个文件,好久没写c了...
#include<stdio.h>
int main()
{
int i;
for(;;)
{
for(i=0;i<9600000;i++) ;
unsigned sleep(10);
}
return 0;
}
剩下的方法2方法3画sinX曲线先不搞,以后算搞windows这套在深入学吧,就学习下解决问题思想。
我的问题:
1.我每次一运行程序cpu确实可以达到50%左右,但是过了3秒左右不管把n调成多大,cpu占有率都在28%左右,就算sleep(0)也不会超30%。I5四核有影响?
2.我看到我的四个cpu图,只有第三个cpu占有率85%,其他都基本没运动,这与多核cpu的调度有关?
- 如何写个程序让cpu占有率达50%
- 写程序让用户来决定Windows任务管理器的CPU占有率
- 让cpu占有率曲线听你指挥
- 让Windows7 cpu占有率100%的分析
- 让CPU占有率听从你的指挥
- 让CPU占有率曲线听你指挥
- CPU占有率
- 编程让任务管理器中CPU占有率呈现正弦曲线
- 写个程序,运行时CPU占用率为50%
- 查看正在运行的程序对cpu的占有率
- CPU占有率曲线
- 控制cpu占有率
- 控制CPU占有率
- ubuntu cpu 占有率 100%
- Java 获得CPU占有率
- cpu占有率实验
- 关于“50% CPU 占有率”题目的内容扩展
- 《编程之美》读书随笔之一:让CPU占有率曲线听你指挥
- XCode4 App Store提交小结
- shell的一些基本知识
- ubuntu手动安装JDK
- VC++6.0如何设置使其支持Unicode编程
- linux下重新启动weblogic脚本
- 如何写个程序让cpu占有率达50%
- ffmpeg编程(一)
- 解决BlackBerry 9900模拟器显示屏花屏的问题。
- Servlet Filter(过滤器)----->张国亮总结心得第一季
- 多线程篇
- AdaBoost算法程序介绍说明
- c++ primer multimap
- Visual Studio 2012 C++ Mysql LNK2019 error
- java中继承与多态典型实例