自学教程 学编程从这里开始

计算机性能评价

本课目标

掌握计算机系统常用性能评价指标;理解 CPU 时钟周期、CPI、MIPS、加速比;熟悉 Amdahl 定律;学会区分峰值性能与实际性能;了解性能评测基准程序,建立科学评估计算机性能的思路。

10.1 性能评价基础概念

评价计算机性能不能只看单一参数(例如只看 CPU 主频)。硬件架构、Cache、流水线、存储带宽、IO 子系统都会影响程序实际运行速度。

两个核心评价维度:

  1. 响应时间 Response Time:从提交任务到任务执行完成的总耗时,也叫执行时间。面向单用户任务,时间越短性能越好。
  2. 吞吐量 Throughput:单位时间内系统能够完成的任务总量。面向多任务、服务器场景,数值越大性能越强。

响应时间缩短,在一定程度上可以提升吞吐量,但二者不完全等价。

10.2 CPU 基础性能参数

时钟周期 & 主频

时钟周期 Clock Cycle:CPU 最小的时间单位,CPU 所有动作都同步于时钟信号。

主频 Clock Frequency:单位时间时钟脉冲数量,主频 = 1 / 时钟周期。

注意:主频高不等于性能一定强。相同主频下,CPI 更低、流水线更好的 CPU,执行速度更快。

CPI(Cycles Per Instruction,每条指令平均时钟周期数)

执行一条指令平均消耗多少时钟周期。

  • CPI 越小,代表平均单指令消耗时钟越少;
  • 不同类型指令 CPI 不一样,访存指令、分支指令 CPI 通常高于简单算术指令。

程序总时钟周期计算公式:

总时钟周期=指令条数×CPI总时钟周期 = 指令条数 × CPI
程序执行时间=总时钟周期×时钟周期程序执行时间 = 总时钟周期 × 时钟周期

MIPS

MIPS:每秒可以执行的百万条指令数量。

MIPS=主频CPI×106MIPS=\frac{主频}{CPI\times10^6}

局限:MIPS 和指令集架构强相关,不能跨架构对比性能(RISC 与 CISC 指令不等效),仅适用于同架构对比。

10.3 Amdahl 定律(阿姆达尔定律,重点)

Amdahl 定律:用来估算系统优化后,最大可获得的加速比。

核心思想:系统的加速效果,受限于系统中无法被优化的部分。

加速比公式:

加速比=改进前总执行时间改进后总执行时间加速比=\frac{改进前总执行时间}{改进后总执行时间}
加速比=1(1−可优化部分占比)+可优化部分占比优化加速倍数加速比=\frac{1}{(1-可优化部分占比)+\frac{可优化部分占比}{优化加速倍数}}

举例:某程序 80% 的计算部分可以并行加速,这部分提速 10 倍;剩余 20% 无法加速。

代入公式:

加速比=1/(0.2+0.8/10)=1/0.28≈3.57加速比 = 1/(0.2 + 0.8/10)=1/0.28≈3.57

哪怕可优化部分提速 1000 倍,整体加速比上限也不会超过 5 倍。

启示:优化系统瓶颈才是性价比最高方案。

10.4 基准测试程序 Benchmark

理论公式只能做估算,真实性能依靠基准程序实测:

  1. 真实程序 Real Program:直接使用实际应用软件,例如编译、视频编码;最贴近真实场景,但测试耗时。
  2. 核心程序 Kernel:提取应用中最耗时的核心代码片段,计算密集,方便测试。
  3. 合成基准 Synthetic Benchmark:人工编写的测试代码,模拟真实程序特征,编写简单,但和真实负载差距较大。

常用基准套件:SPEC(标准性能评估机构),广泛用于 CPU 性能评测。

10.5 性能评价注意事项

  1. 峰值性能 Peak Performance:理论上硬件能达到的最大运算速度,几乎无法在真实程序下达到,参考意义有限。
  2. 相对性:性能对比必须固定相同编译器、操作系统、配置环境,改变环境会改变结果。
  3. 兼顾功耗:嵌入式、移动端场景,不能只追求性能,还要考虑功耗、能效比。

本课小结

性能主要看响应时间与吞吐量。CPU 的执行时间由指令条数、CPI、时钟周期共同决定。Amdahl 定律揭示了系统加速的上限,瓶颈部分决定整体优化效果。理论指标有局限,工程上依靠基准测试程序实测评估性能,不要单凭主频判断 CPU 好坏。

思考练习

  1. 响应时间和吞吐量分别是什么,适用场景?
  2. 写出程序 CPU 执行时间公式,主频、CPI、指令条数如何影响执行时间?
  3. Amdahl 定律核心含义是什么?
  4. MIPS 指标有什么局限性?
标签:

0 条笔记