前略。
计算机系统性能评价
计算机性能的定义
计算机性能基本指标:
- 任务提交开始到完成所用的时间(响应时间)
- 单位时间所完成的工作量(吞吐率)
比较计算机的性能时,常常用执行时间来衡量。完成同样工作量所需时间最短的那台计算机就是性能最好的。
但处理器时间往往被多个程序共享使用,因此用户感觉到的程序执行时间并不是程序真正的执行时间。
通常将用户感觉到的响应时间分成
- 用户 CPU 时间:用来运行用户代码的时间
- 其他时间:CPU 运行操作系统、等待 I/O 操作完成、CPU 花在其他用户程序的时间
系统性能和 CPU 性能不等价:
- 系统性能:系统响应时间,与 CPU 外的其他部分也有关系
- CPU 性能:用户 CPU 时间
计算机系统的性能主要考虑 CPU 性能,即用户 CPU 时间。
用户 CPU 时间涉及的概念和参数:
- 时钟周期:计算机产生的同步时钟定时信号(CPU 主脉冲信号)的宽度
- 时钟频率:主脉冲信号的时钟频率,CPU 时钟周期的倒数
- CPI:执行一条指令所需的时钟周期数。对于一条指令,CPI 是确定值;对于一个程序或机器,综合 CPI 是所有指令的平均时钟周期数。
用户 CPU 时间程序总时钟周期数CPI=程序总时钟周期数÷时钟频率=指令总条数×时钟周期=程序指令总条数×CPI=i=1∑n(CPIi×Ci)=i=1∑n(CPIi×Fi)
其中 CPIi,Ci,Fi 是第 i 类指令的 CPI 、指令条数及其在程序中的出现频率。
用户 CPU 时间=程序总指令条数×CPI×时钟周期=程序总指令条数×CPI÷时钟频率
这三个参数相互制约,提高时钟频率不能保证速度同倍数提高。
用指令执行速度进行性能评估
指令速度计量单位:平均每秒钟执行多少百万条指令(MIPS, Million Instructions Per Second);因为每条指令执行时间不同,所以 MIPS 总是一个平均值。
因不同机器的指令集不同、程序由不同的指令混合而成、指令使用的频度动态变化等原因,MIPS 不能说明性能的好坏。
浮点操作速度:MFLOPS(Million Floating-point Operations Per Second)
MFLOPS 与机器相关性大、并不是程序中花时间的部分,用以表示性能也有局限。
用基准程序进行性能评估
基准测试程序是专门用来进行性能评价的一组程序;在不同机器上运行相同的基准程序比较运行时间来测评性能;基准程序能够反映计机器在运行实际负载时的性能。
缺陷:基准程序的性能与某段短代码密切相关时,会被利用以得到不当的性能评测结果。
SPEC(Standard Performance Evaluation Corporation):引用最广泛也是最全面的基准程序集。
综合性能评价
执行时间的规格化:测试机器相对于参考机器的性能。
规格化执行时间=测试机器执行时间参考机器执行时间
根据算术平均执行时间能得到总平均执行时间;平均规格化执行时间应该用几何平均。
Amdahl 定律(阿姆达尔定律)
对系统中某部分(硬件或软件)进行更新所带来的系统性能改进程度,取决于该部分被使用的频率或其执行时间占总执行时间的比例。
改进后的执行时间整体改进倍数=改进部分的改进倍数改进部分执行时间+未改进部分执行时间=改进部分的改进倍数改进部分执行时间比例+未改进部分执行时间比例1
即
p=nt+1−t1
上面的 p 是整体改进倍数,t 是改进部分执行时间比例,n 是改进部分的改进倍数。
数据的机器级表示
本节很多内容可见计算系统基础笔记,不再重复书写。
- 二进制(binary):1011B
- 八进制(octal):13O
- 十进制(decimal):11D 或 11
- 十六进制(hexadecimal):BH
快速转换法(十进制转二进制)——最近权法:
⎩⎨⎧2−12−22−32−42−5⋮212213214215216=0.5=0.25=0.125=0.0625=0.03125=4096=8192=16384=32768=65536
单词 |
十进制前缀 |
值 |
kilobyte |
KB |
103 |
megabyte |
MB |
106 |
gigabyte |
GB |
109 |
terabyte |
TB |
1012 |
petabyte |
PB |
1015 |
IEC 给出了表示二进制信息大小的单位
单词 |
IEC 定义的二进制前缀 |
值 |
与十进制前缀值差 |
kibibyte |
KiB |
210 |
2% |
mebibyte |
MiB |
220 |
5% |
gibibyte |
GiB |
230 |
7% |
tebibyte |
TiB |
240 |
10% |
pebibyte |
PiB |
250 |
13% |