引入
1、一些概念
响应时间:手机用户所关注的“速度”,也就是一个事件从启动到完成的时间,又称为执行时间。
吞吐量:给定时间内完成的总工作量,WSC的操作人员关注这个。
执行时间是性能的倒数(即执行时间越短,性能越好)。
2、共识
唯一稳定、可靠的性能指标是实际程序的执行时间,以任意其他指标代替时间或者以其他被测项替代实际程序,最终都会在计算机设计中产生误导甚至是错误。
最直接的时间定义被称为挂钟时间、响应时间或已用时间(elapsed time)也就是完成一项任务的延迟,包括外存访问、存储器访问、输入/输出活动、操作系统开销等所有相关时间。在同时运行多个程序的情况下,处理器在等待时处理另一个程序,不一定使某一程序的已用时间缩至最短。CPU时间可以区分不同,它指的是处理器执行计算的时间,不包括等待或运行其他程序的时间。(显然,用户观测到的响应时间是程序的已用时间,而不是CPU时间。)
1.8.1 基准测试
性能的最佳基准测试方法就是采用实际的应用程序,比如1.1节的Google Translate。人曾经尝试运行一些远比实际应用程序简单的程序,但这种做法导致了性能隐患。这些简单程的示例包括:
1、程序内核(kernel),即实际应用程序中短小、关键的部分;
2、玩具程序,即为了完成编程人门作业而编写的小程序,通常不超过100行,比如快速排序;
3、合成基准测试程序,即为了匹配实际应用程序的特征和行为而编写的虚拟程序,Dhrystone。
针对windows操作系统的pc,有很多基准测试。
1.桌面基准测试
桌面基准测试分为两大类:处理器密集型基准测试和图形密集型基准测试,不过许多图形基准测试中包含大量处理器行为。SPEC最初开发了一个针对处理器性能的基准测试集(最初被称为SPEC89),它现在已经发展到第6代:SPEC CPU2017,前面还有SPEC2006、SPEC2000、SPEC95、SPEC92和SPEC89。SPEC CPU2017由10个整数基准测试(CINT2017)和17个浮点基准测试(CFP2017)组成。图1-10介绍了目前的SPEC CPU基准测试及其之前的各个版本。
SPEC基准测试是一些实际的应用程序,这些应用程序经过修改就可以移植,并能在最大程度上减轻IO对性能的影响。
整数基准测试涉及的范围很广,从编译器的一部分到国际象棋程序,再到视频压缩。浮点基准测试包括分子动力学、射线追踪和天气预测。SPEC CPU套件可用于对桌面系统和单处理器服务器进行处理器基准测试。
2、服务器基准测试
服务器有许多功能,所以也存在多种类型的基准测试。最简单的基准测试可能是面向处理器吞吐量的基准测试。SPEC CPU2017利用SPEC CPU基准测试构建了一个简单的吞吐量基准测试,这种测试可以测试多处理器的处理速率:运行每个SPEC CPU基准测试的多个副本(副本数目通常与处理器数目相同),并将CPU时间转变为处理速率。这样会得到一个名为SPEC rate的度量,它也是1.2节介绍的请求级并行的度量。为了测量线程级并行,SPEC为OpenMP和MPI以及加速器(如GPU)提供了一些基准测试,并称之为高性能计算基准测试。除了SPECrate之外,大多数服务器应用程序和基准测试有大量因为磁盘和网络通信流量所产生的IO行为,包括用于文件服务器系统、Web服务器、数据库与事务处理系统的基准测试。
SPEC提供了一个文件服务器基准测试(SPECSFS)和一个Java服务器基准测试。
事务处理(transaction-processing,Tp)基准测试测量一个系统处理事务(包括数据库访问与更新)的能力。航空订票系统和银行ATM系统是比较典型的简单TP示例,更高级的TP系统涉及复杂的数据库和决策预定。
20世纪80年代中期一群工程师组建了独立于供应商的事务处理委员会(Transaction Processing Council、TPc)尝试为TP创建客观公平的基准测试TPC网站上有关于TPC基准测试的介绍。
第一个TPC基准测试TPC-A于1985年发布,后来被其他几个基准测试取代了。TPC-C最初在1992年创建,它模拟一种复杂的查询环境。TPC-H对专用决策支持建模——查询之间没有关联、不能利用过去查询的相关知识来优化将来的查询。TPC-DI基准测试是一种新的数据集成(DI)任务,也称为ETL,它是数据仓库的一个重要部分。TPC-E是一种联机事务处理(onlinetransaction processing,OLTP)工作负载,它模拟代理公司的客户账户。
意识到传统关系数据库与“NOSOL”存储解决方案之间存在的争议,TPCx-HS测量使用运行MapReducei程序的Hadoop文件系统的系统,而TPC-DS测量决策支持系统,这个系统要之使用一个关系数据库,要么使用一个基于Hadoop的系统。TPC-VMS和TPCx-V测量用于虚拟化系统的数据库性能,而TPC-Energy为所有现有TPC基准测试增加了能耗测试指标。
所有TPC基准测试都以每秒完成的事务数来测试性能。此外,它们还包含响应时间要求仅在满足响应时间限制时才会测试吞吐量性能。在对真实的系统建模时,更高的事务率也与更大型的系统相关联,这里所说的“更大型”一方面表现在用户数上,另一方面表现在作为事务应用对象的数据库上。最后,基准测试系统的系统成本也必须包含在内,以便准确地对比性价比。TPC修改了它的定价策略,对于所有TPC基准测试只有一个规格,从而可以验证TPC发布的价格。
1.8.2 报告性能测试结果
应当遵循的原则——可再现性(reproducibility),即列出其他实验者在再现该结果时所需要的全部信息。SPEC基准测试报告需要全面描述计算机和乡译器参数,以及公布基准性能和经过优化的结果。除了对硬件、软件和基准调优参数的描述外,SPEC报告还包含实际性能倍数(performance times),并以表格和曲线图两种形式给出TPC基准测试报告更为全面,因为它必须包含基准测试审核的结果和成本信息。自制造商在性能和高性价比方面展开竞争以来,这些报告就成为确定计算系统实际成本的极佳信息源。
1.8.3 性能结果汇总
当我们使用一种基准测试套件来测量性能的时候,就希望能够用一个数值来汇总套件性能的结果。这里使用一种方法:将基准计算机上的执行时间除以待评估计算机上的执行时间,得到一个与性能成正比的比值。
下面有一部分涉及数据了,直接就上图吧,侵删。