基本概念:
响应时间
: 执行程序需要花费的时间
吞吐率
: 一定时间内、可以执行的指令
性能一般定义为: 1/响应时间
计算机的计时单位: cpu时钟
虽然时间是衡量性能的标准、但是也有很大的差异
-
时间不准
应该参与比较的是刨除了io和cpu切换之外的实际CPU时间(user + sys) - 就算拿到cpu时间也不一定可以比较 CPU满载运行时、可能会降频
此外、还会受到主板、内存等的硬件影响
程序的cpu执行时间
= cpu时钟周期数
x 时钟周期时间
cpu 时钟周期时间越小、散热的压力也就越大
cpu时钟周期数
= 指令数
x cpi
x Clock Circle Time
cpi
: 每条指令的平均时钟周期数 Cycles Per Instruction
时钟周期时间: 取决于硬件
CPI: 取决于一条指令需要多少CPU周期、
指令数: 代表程序执行需要多少指令、用哪些指令
功耗
~= 1/2
x 负载电容
x 电压的平方
x 开关频率
x 晶体管数量
所以:
1.为了提升性能、需要增加晶体管数量, 同样面积、就要把体积造的小、 就是提升`制程`
2.但是 功耗增加太多、会导致CPU散热跟不上、就需要降低电压、
而功耗是和电压的平方成正比的、意味着电压下降到原来的 1/5 、功耗就会变成原来的 1/25.
提升计算机性能的方式
1. 摩尔定律: 增加晶体管数量(主频)
2. 并行原理: 多CPU
3. 加速大概率事件: gpu替代cpu
4. 通过流水线提升性能: 把cpu执行指令的过程细分
5. 通过预测提高性能: 分支和冒险, 局部性原理
应用:
加速大概率事件: 缓存(内存、CDN缓存)
流水线: 并发编程、异步编程、音频播放器边放边缓冲
预测: 下一页预加载、cdn预热、指令预加载
网友评论