计算机系统性能评价
基本指标
- 吞吐量:单位时间内所完成的工作量
- 响应时间:从作业提交开始到作业完成的时间
性能评价
根据程序执行时间
从执行时间来看,完成同样工作量所需时间最短的那台计算机的性能最好。一个程序的执行时间可以分为:
- CPU 时间(CPU 用于本程序执行的时间)
- 用户 CPU 时间:真正用于执行用户程序的时间
- 系统 CPU 时间:为了执行用户程序而需要 CPU 运行操作系统程序的时间
- 其他时间:等待 I/O 操作完成的时间或者用于执行其他应用程序的时间
计算机系统性能评价主要考虑 CPU 性能,但要注意:CPU 性能与系统性能并不等价,CPU 性能指的是用户 CPU 时间
对 CPU 时间进行计算的时候有以下几个重要的概念和指标:
- 时钟周期:时钟定时信号的脉冲宽度。
定时信号的作用:指令的执行需要由响应的控制信号进行控制,控制信号何时发出,作用时间多长,都需要相应的定时信号来进行同步。
- 时钟频率:CPU 主频就是时钟频率,是时钟周期的倒数,即一秒钟有多少个脉冲信号。
- CPI(Cycles Per Instruction):表示一条指令所需的时钟周期数。对于一条指令而言,其 CPI 是一个确定的值,对于一台机器而言,其 CPI 是一个平均数。
根据上述指标,我们可以计算用户 CPU 时间:
- 用户 CPU 时间 程序总时钟周期数 时钟频率 程序总时钟周期数 时钟周期
若已知综合CPI和程序总指令条数,则上式中的总指令周期数:
- 程序总时钟周期数 程序总指令条数 CPI
若已知程序中共有 n 中不同指令,第 i 条指令的条数和 CPI 分别为 和 ,则程序总时钟周期数:
- 程序总时钟周期数
最后,我们可以得到:
用户 CPU 时间 程序总指令条数 CPI 时钟周期
从上面这条式子来看,在评价计算机性能的时候,仅考虑单个元素是不全面的,必须三个元素同时考虑。
根据指令执行速度
最早,由于大多数指令的执行时间是相同的,所以人们当初采用的评估性能指标是每秒完成单个运算指令的条数。指令速度计量单位为 MIPS (Million Instruction Per Second),其含义是平均每秒执行多少百万条指令。
后来,由于不同指令所需的执行时间差别越来越大,人们采取等效指令速度法,即将不同指令的占比也考虑进来。
还有一个相对 MIPS 法,是根据某个公认的参考机型来定义相应的 MIPS 值,其值的含义是被测机型相对于参考机型 MIPS 的倍数。
**但是用 MIPS 来反映机器执行定点指 令的速度是不准确的。**因为在不同机器中,一条指令的功能不一定是一样的,有可能在甲机器中某一个功能只需要一条指令,但是在乙机器中完成同样的功能需要多条指令。因此,同样的指令数所完成的功能可能完全不同。
还有一些类似的指标,用来表示浮点操作速度:
- MFLOPS ()、GFLOPS ()、TFLOPS ()、PFLOPS ()、EFLOPS ()
根据基准程序进行性能评估
书上在第 22 - 23 页进行了简单介绍
Amdahl定律
Amdahl定律 (阿姆达尔定律) 是计算机系统设计方面重要的定量原则之一。其基本思想是:对系统中某个硬件或者软件中某部分进行更新所带来的整体的系统性能改进程度,取决于这个硬件部分或这个软件部分被使用的频率或其执行时间占总时间的比例。
这个定律有以下公式:
- 改进后的执行时间 = 改进部分的执行时间 改进倍数 未改进部分的执行时间
- 整体改进倍数 = 改进后执行时间 / 改进前执行时间 = 1 /(改进部分所占时间比例 改进倍数 + 未改进部分所占比例)
这个定律中我们可以看出来:
- 若改进部分执行时间占比很少,那么即使改进得再好,整体性能也不会有较大提升。
- 对于占比时间大的 A 部分进行改进能够很好地提升整体性能,但这也存在瓶颈,当 A 部分的性能提升很多之后,这时候整体性能将会受到慢速部件的制约。