Benchmark 和性能评测综述1
1 性能评估标准用户使用计算机的主要原因是使工作效率更高,更快的完成任务
这也是用户非常关怀计算机性能的原因
那么计算机性能评价的标准是什么
直到上世纪 80 年代后期,评价计算机性能的主要标准 是 MIPS(million instructions per second) 和 Mflops(million floating-point operations per second);通过计算每条指令在运行时的百分比,就可以得到这两个数据
但是这两个标准在评价不同的指令集体系结构就失去了意思,例如 CISC 体系结构和RISC 体系结构,RISC 指令比 CISC 指令更简单更快
但是,人们一直都想建立一个性能评测的标准,而现在公认的方法就是通过运行评测程序(我们也称之为 benchmark),比较运行的时间来评价性能的好坏
2 关于评测程序(benchmark)选择合理的评测程序是正确评价性能的基础,下面列出 5 种评测程序,他们评测的准确程序依次递减1
真实的程序:虽然得到的结果最真实,但是常常碰到一些由于依赖操作系统或者编译器而引起的移植性问题2
修改过的程序:很多情况下通过修改真实的程序来构造基准程序,主要是为了两个原因:要么增强可移植性,要么是为了集中测试某种特定的系统功能3
程序核:从真实的程序中提取出一些小而关键的程序片断来评估程序性能
程序核的最大用途就是分别测试机器的各项性能,以解释运行真实程序性能差异的原因
典型的是 Linpack 和 Livermore
小型基准程序:通常只有 10-100 行那么大,用户在测试前往往就知道了运行结果
综合(synthetic)基准程序:也可以说是人造(synthetic)程序,取大量程序的指令和操作书出现频率的平均值,与真实的情况差距最远,只是最早期的