编程之美1.1让CPU占用率曲线听你指挥之解法一细节
来源:互联网 发布:下载淘宝app官方软件 编辑:程序博客网 时间:2024/05/24 15:38
在解法一中有这么一段话:
对于一个空循环for(i = 0; i < n; i++);该如何来估算这个最合适的n值,来实现我们需要的延时呢?我们都知道CPU执行的是机器指令,而最接近于机器指令的语言是汇编语言,所以我们可以先把这个空循环简单地写成如下汇编代码后再进行分析:loop:mov dx i ;将i置入dx寄存器inc dx ;将dx寄存器加1mov i dx ;将dx中的值赋回icmp i n ;比较i和njl loop ;i小于n时则重复循环假设这段代码要运行的CPU是P4 2.4Ghz(2.4 * 10的9次方个时钟周期每秒)。现代CPU每个时钟周期可以执行两条以上的代码,那么我们就取平均值两条,于是让(2 400 000 000 * 2)/5=960 000 000(循环/秒),也就是说CPU 1秒钟可以运行这个空循环960 000 000次。那么,公式中为什么要除以5?
其实仔细看书中的话,就会容易理解了
书中说了,使用汇编语言来衡量机器指令个数是最合适的,也就是说我们写的一句for 空循环,需要以上五条汇编语言来支持,即一条空的for循环需要执行五条机器指令(可以这样理解,真实环境下并不一定是这样的),所以要除以5,使其变成空的for循环的数目。
实验验证:
本机cpu主频 2.8GHZ
C++ code:
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
while(true){
for(int i=0;i<1120000000;i++);
Sleep(10);
}
getchar();
return 0;
}
得到的结果如下:
- 编程之美1.1让CPU占用率曲线听你指挥之解法一细节
- 编程之美 - 让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美:让CPU占用率曲线听你指挥
- 编程之美学习笔记(一)-让CPU占用率曲线听你指挥
- 读书笔记之编程之美 - 1.1 让CPU占用率曲线听你指挥
- 《编程之美》之读书笔记 1.1让CPU占用率曲线听你指挥
- 《编程之美》1.1 让CPU占用率曲线听你指挥
- 编程之美1.1让CPU占用率曲线听你指挥
- 编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器)
- 编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器)
- 这是要把前几年积累的C++的节操给丢光吗
- Java学习总结之贪吃蛇项目程序编写(完结)
- Linux系统调用
- Windows 7系统下, 使用VC编译OpenSSL静态库步骤
- 编程之美区间重合判断
- 编程之美1.1让CPU占用率曲线听你指挥之解法一细节
- 值得拥有
- STL中的vector
- 二叉树的非递归遍历
- 在一些随机的位置嵌入噪声帧
- 教你如何成为数据科学家(六)
- git 的安装和配置
- 为eCos安装扩展组件包
- java连接数据库