程序的CPU执行时间

程序的CPU执行时间=CPU时钟周期数×时钟周期时间

想要使程序的CPU执行时间尽可能的缩小,那么就尽可能的是CPU时钟周期数和时钟周期时间尽可能的小

时钟周期时间(Clock Cycle Time)

我的电脑型号是Intel Core-i5-8400HQ 2.8GHz

它表明电脑的主频为2.8GHz

2.8GHz这个参数代表了CPU在1秒时间内,可以执行的简单指令的数量是2.8G条。

CPU内部有个叫晶体振荡器(Oscillator Crystal)的东西 简称晶振

可以将晶振理解为那种老式摆钟,一天下来它要摆好多次。

时钟周期时间:晶振的每一次“滴答滴答”的摆动

在这个2.8GHz的CPU上,这个时钟周期时间,就是1/2.8G (1/主频)

所以CPU就根据这个叫时钟周期时间的节奏进行处理数据

假如有2个人,一个吃东西吃的特别快,而另一个人吃东西吃的特别的慢,吃相同的东西,所需要的时间当然也不同。

所以说运行相同的程序,主频大的(吃的快的)运行的就快,时间自然就少了。

有一个人平时吃饭需要20分钟(CPU本身的能力),但现在他只有10分钟的吃饭时间,那么这个人的吃饭速度就会变快,而如果你现在给他60分钟的时间吃饭,那么,他就不会那么着急,而是慢慢享用着饭菜。

超频 就是你给这个人(CPU)低于20分钟的时间吃饭,他可以完成,但是由于吃饭比较急,导致这个人(CPU)可能会出现消化不良等不好状况,然后,他就会说:“boss,我很对不起你,我今天拉肚子了,所以想请个假,你看~~~嘿嘿”。

这个时钟周期时间是出生的时候就已经决定好了的,除了超频或换CPU,是不能改变的

所以,减少程序的CPU执行时间这项伟大的任务就交给CPU时钟周期数了。

CPU时钟周期数

我们可以将CPU时钟周期数做一个分解,把它变成"指令数×每条指令的平均时钟周期数(Cycles PerInstruction,简称CPI)"

  • 指令数:指令数量的多少
  • CPI:每一个指令运行所需要的时间

同样的代码,编译成计算机指令时候,就有各种不同的表示方式。

所以同一个程序因为编译器的不同,指令数也可能不同。

而不同的指令需要的CPI是不同的,加法和乘法都对应着一条CPU指令,但是乘法需要的Cycles就比加法要多,自然也就慢。

现代CPU通过流水线技术,让一条指令需要的CPI尽可能地少

那么为什么可以将程序的CPU执行时间  分成指令数×CPI×Clock Cycle Time呢?

指令数×CPI 是人为可以改变的,通过更好的算法使 指令数×CPI的值尽可能的小。(就相当于设计更好的程序咯)

而Clock Cycle Time是硬件的问题,除了超频或换CPU,是不能改变的,所以×Clock Cycle Time就可以体现出相同程序在不同性能的CPU上所耗费的时间不同

所以在我的理解看来,CPU时钟周期数相当于程序,时钟周期时间相当于运行程序的机器的性能。

 

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值