计算机的性能公式

  【cpu执行时间】简称CPU时间,表示执行某一任务在CPU上所花费的时间,不包括等待I/O或运行其他程序的时间。  

  程序的cpu执行时间 = cpu时钟周期数 × 时钟周期时间 = cpu时钟周期数 ÷ 主频

  要想缩短cpu执行时间,最简单的方法就是缩短cpu的时钟周期时间,也就是提升主频。

何为主频?

主频就是机器内部主时钟的频率,其常用单位为HZ,MHZ等。例如主频为8MHZ的机器,每秒有8M个时钟周期,cpu时钟周期是主频的倒数,则它的时钟周期数为1/(8x10^6)HZ=0.125μs

cpu周期又称机器周期,通常用从内存中读取一条指令字的最短时间来定义,一个指令周期由若干个cpu周期构成。

  换言之,就是换一块cpu。不过,这是软件工程师控制不了的事,所以我们自然想到乘式中另一个因子——cpu时钟周期数。如果能够减少程序所需要的cpu时钟周期数量,一样能够提高程序性能。

  对于cpu时钟周期数,我们可以再做一个分解,把它分成:

                         cpu时钟周期数=指令数×每条指令平均时钟周期数

  不同的指令需要的周期数是不同的,加法和乘法都对应着一条cpu指令,但是乘法需要的cpu时钟周期数就比加法要多,自然也就慢。在拆分了之后,我们的程序的cpu执行时间就可以变成这样三个部分的乘积:

                         程序的cpu执行时间=指令数×CPI×时钟周期时间=指令数×CPI/时钟频率

CPI:执行每条指令所需要的时钟周期数的平均值。

CPI = CPU时钟周期数 / 指令条数 = CPU时间 × 时钟频率 / 指令条数

  因此,如果我们想解决性能问题,其实就是要优化三点:

  1、时钟周期时间,就是计算机主频,这个取决于计算机硬件。

  2、每条指令的平均时钟周期数CPI,就是一条指令到底需要多少CPU cycle。现代的CPU通过流水线技术(pipeline)可以让一条指令需要的cpu cycle尽可能的少。

  3、指令数,代表我们的程序到底需要多少条指令,用哪些指令。这个很多时候就把挑战交给了编译器。同样的代码,编译成计算机指令的时候,就有不同的表达方式。

MIPS:每秒执行多少百万条指令

MIPS = 指令数 / (执行时间 × 10^6 ) = 主频 / CPI

【amdahl定律】

  改进后的执行时间=受改进影响的执行时间/改进量+不受影响的执行时间

amdahl定律阐述了“对于特定改进的性能提升可能由所使用的改进特征的数量所限制”的规则,他是“收益递减定律”的量化版本。改进后程序的总执行时间Tn = 改进前整个程序的执行时间 × (1 - 可改进比例Fe + (可改进比例Fe / 部件加速比Se))

改进后,整个系统的加速比为:Sn = T0 / T1 = 1 / (1 - Fe + (Fe / Se))

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值