《第二章性能评价.docx》由会员分享,可在线阅读,更多相关《第二章性能评价.docx(9页珍藏版)》请在优知文库上搜索。
1、第二或:性能评价主要内容:计算机系统的性能指标和评价方法。学习目标:1. 了解如何对计算机的性能进行测量和评价2. 了解有哪些因素会影响计算机的性能3. 了解各种硬件特性如何影响系统性能。如,软件是否充分利用了机器指令集的特性、底层硬件是否很好地实现了指令集、存储器和I/O系统等是否和CPU匹配等概念解释:响应时间(Responsetime)也称执行时间(EXeCUtiontime),是指从作业提交开始到作业完成所花的时间。一般一个程序的响应时间除了CPU执行程序包含的指令所花的时间外,还包括磁盘访问时间、存储器访问时间、输入输出操作所需时间,以及操作系统运行这个程序所花的时间开销等。吞吐率(
2、Throughput)是指在一定的时间内所完成的工作量。CPU执行时间(CPUeXeCUtiOntime)是指在程序运行过程中,CPU真正花在程序上的时间。它不包括因为等待I/。操作完成而花的时间,也不包括CPU执行其他程序所花的时间。但对用户来说,能直接感觉到的只是响应时间,而不可能是CPU时间。用户CPU时间(USerCPUtime)、系统CPU时间(SyStemCPUtime)CPU时间进一步分为两部分:一部分是用来运行用户程序代码的时间,称为用户CPU时间;另一部分是为了执行用户程序而不得不运行的一些操作系统代码所花费的时间,称为系统CPU时间。系统性能(Systemperforman
3、ce)可以用程序没有其他任何负载的情况下的响应时间来表示系统性能。CPU性能(CPUperformance)可以用用户CPU时间来表示CPU性能。时钟周期(ClockcycleTick,Clocktick,Clock)所有计算机执行指令的过程都是分成若干步骤和相应的动作来完成的,每一步动作都要有相应的控制信号进行控制,这些控制信号何时发出、作用时间多长,都要有相应的定时信号进行同步。因此,CPU必须能够产生同步的时钟定时信号,也就是CPU的主脉冲信号,其宽度称为时钟周期。时钟频率(ClOCkrate,主频)CPU的主频就是CPU中的主脉冲时钟信号的频率。是CPU时钟周期的倒数。CPI(Cycl
4、ePerInstruction)衡量CPU性能的一种计量单位。表示执行一条指令所需的平均时钟周期个数。基准测试程序(Benchmark)是专门用来进行性能评价的一组程序,这些程序能够很好地反映机器在运行实际负载时的性能。可以在不同机器上运行相同的基准测试程序来比较不同机器的运行时间,从而比较其性能。SPEC基准测试程序集(SPECBenchmark)系统性能评价标准(SystemPerformanceEvaluationCooperative)SPEC是一个应用最广泛、也是最全面的对CPU性能评测的基准程序集。分整数程序集SPECim和浮点程序集SPECfpoSPEC比值(SPECratio)
5、将测试程序在SunSPARCstation运行时的执行时间除以该程序在测试机器上的执行时间所得到的比值。比值越大,机器的性能越好。阿姆代尔定律(Amdahl,sLaw)主要含义是指系统优化某部件所获得的系统性能的改善程度,取决于该部件被使用的频率,或所占总执行时间的比例。主要应用在改善“系统瓶颈”的性能。MIPS(MillionInstructionsPerSecond)用来衡量单位时间内执行指令的条数,具体是指每秒钟执行多少百万条指令。加法指令执行速度(AddInstructionexecutionspeed)最早用来衡量计算机性能的指标是完成单个运算(如加法运算)指令所需要的时间。当时大多
6、数指令的执行时间是相同的。加法指令能反映乘、除等运算,而其他指令的时间也大体与加法指令相当。故加法指令的速度有一定的代表性。计量单位为KIPS(每秒千条指令)和MIPS(每秒百万条指令)。平均指令执行时间(AVerageInstructionexecutiontime)也称等效指令速度法或GibSOn混合法。随着计算机的发展,不同指令所需的执行时间差别越来越大,人们就根据等效指令速度法通过统计各类指令在程序中所占比例进行折算。设某类指令i在程序中所占比例为wi,执行时间为ti,则等效指令的执行时间为:T=w1Xt1+w2Xt2+wnxtn(n为指令种类数)。如果指令执行时间用时钟来衡量的话,平
7、均指令执行时间就是平均CPL对平均指令执行时间求倒数就得到平均MIPSo峰值MIPS(PeakMIPS)选取一组指令组合,使得平均CPI最小,由此得到的MIPS就是峰值MIPS。有些制造商经常将峰值MIPS直接当作MIPS,因此,实际上的性能要比标称的性能差。相对MIPS(RelativeMIPS)根据一种公认的参考机型来定义相应的MIPS值,其值的含义是相对于参考机型MIPS的多少倍。MFLOPS(Millionfloating-pointoperationspersecond)是计算机浮点运算速度的一种计量单位。表示每秒所执行的浮点运算次数。它是基于所完成的操作次数而不是指令数来衡量的。常
8、见问题:1 .衡量计算机系统性能的主要指标是什么?答:计算机性能的好坏主要体现在速度,而衡量速度快慢主要有两个指标:响应时间和吞吐率。响应时间是指从作业提交开始到作业完成所花的时间。般个程序的响应时间除了CPU执行程序包含的指令所花的时间外,还包括磁盘访问时间、存储器访问时间、输入输出操作所需时间,以及操作系统运行这个程序所花的时间开销等。吞吐率是指单位时间内完成的工作量。2 .系统吞吐率越高,程序执行时间就越短,对吗?答:程序的执行时间就是响应时间,从道理上来说,如果每个程序执行得都很快,那么单位时间内完成的程序量就多,每个程序所花的时间长,单位时间内完成的程序量就少,似乎两者完全是正相关的
9、。一般情况下,系统吞吐率越高,程序执行时间就越短。但是,在计算机系统中,两者并不总是正相关。例如,指令流水线使得单位时间内执行的指令条数增多,但每条指令的执行时间反而延长了。有些情况下,这两种指标是一种对立关系。要想得到更高的系统吞吐率,必定要延长作业的响应时间,相反的情况也会出现。所以,必须根据应用的需要在两者之间进行权衡。3 .CPU的时钟频率越高,机器的速度就越快,对吗?答:在其他因素不变的情况下,CPU的时钟频率越高,机器的速度肯定越快。但是,程序执行的速度除了与加工指令的CPU的速度有关外,还与存储器、I/O等模块的存取速度、总线的传输速度,甚至与软件(如:操作系统等)都有很大关系。
10、CPU执行得再快,但经常发生要取的指令或数据不在“附近”,要花很长时间从内存取过来,甚至还要到磁盘上去取,那么程序的执行速度会受很大的影响。4 .CPl的含义是什么?执行时间(响应时间)与CPl是什么关系?答:CPI是指每条指令执行时所花的平均时钟数。一个程序的执行时间与该程序所包含的指令数、CPl和时钟周期有关,成正比关系。所以,在指令条数和时钟周期一定的情况下,CPl越大,执行时间越长。5 .计算机的MiPS数越大,说明性能越好,对吗?答:不对。MlPS数反映的是机器执行定点指令的速度。但是,不同机器的指令集不同,指令的功能也不同,也许一个机器上一条指令的功能,在另外一个机器上要用多条指令
11、来完成,这样,同样的指令条数所完成的功能可能完全不同;另外,不同机器的CPI和时钟周期也不同,因而一条指令所花的时间也不同。所以,用MlPS数来对不同的机器进行性能比较是不客观的。6 .基准测试程序执行得越快,说明机器的性能越好,对吗?答:不对。一般情况下,基准测试程序能够反映机器性能的好坏。但是,如果制造商针对基准测试程序中频繁出现的语句采用专门的编译器,使基准程序的运行效率大幅提高。那么基准评测程序测试的结果就不能说明问题。自测练习:1 .以下给出了改善计算机性能的四种措施:用更快的处理器来替换原来的慢速处理器增加处理器,使得不同的处理器同时处理不同的任务优化编译生成的代码使得程序执行的总
12、时钟周期数减少在CPU和主存之间增加CaChe以上措施中,哪些措施能缩短程序的响应时间?(D)A.和和B.和和C和和D.全部2 .以下给出了改善计算机性能的四种措施:用更快的处理器来替换原来的慢速处理器增加处理器,使得不同的处理器同时处理不同的任务优化编译生成的代码使得程序执行的总时钟周期数减少在CPU和主存之间增加CaChe以上措施中,哪些措施能提高系统的吞吐率?(D)A.和和B.和和C.和和D.全部3 .若某个基准测试程序在机器A上运行时需要20s,而在机器B上的运行时间是16s,则如下给出的结论中哪个是正确的?(B)A.所有程序在机器A上都比在机器B上运行速度慢B.机器B的速度是机器A的
13、1.25倍C.机器A的速度是机器B的1.25倍D.机器A比机器B慢1.25倍4 .在UNIX操作系统中,可以用time命令查看程序总的响应时间中用户CPU时间和系统CPU时间各是多少。假定time命令返回某程序的数据为:803u10.1s2:0274%,则下面哪个结论是错误的?(B)A.该程序总的响应时间为122秒B.该程序运行过程中,CPU为该程序而执行指令所花的总时间为80.3秒C.该程序运行过程中,CPU为该程序而执行的操作系统代码所花时间为10.1秒D.该程序总的运行时间中,约26%的时间在等待I/O操作完成或执行其他程序5 .以下有关计算机运算速度衡量指标的描述中,错误的是(D)。A
14、.计算机的主频与运算速度有很大关系B. 5MIPS是指CPU每秒执行500万条指令C. CPI是指执行一条指令所需的平均时钟周期数D. MFLoPS主要用来衡量浮点运算的速度,指每秒执行多少次浮点运算指令6 .假定某程序在计算机A上运行需要12秒钟,计算机A的时钟频率为500MHz。现在硬件设计人员想设计计算机B,希望该程序在B上的运行时间缩短为8秒钟,而使用新技术可以使时钟频率大幅度提高,但在B上运行该程序所需的时钟周期数为A上的1.5倍。那么,机器B的时钟频率至少应为多少,才能达到希望的要求?A.222MHzB.666MHzC.750MHzD.1.5GHz7 .假设同一套指令集用不同的方法
15、设计了两种计算机A和B。机器A的时钟周期为1.2ns,机器B的时钟周期为2ns。某个程序在机器A上运行时的CPl为2,在B上的CPl为1o则对于该程序来说,机器A和机器B之间的速度关系为(D)。A.机器A比机器B快12倍B.机器B比机器A快1.2倍C.机器A的速度是机器B的1.2倍D.机器B的速度是机器A的1.2倍8 .假定编译器对高级语言的某个语句可以编译生成两种不同的指令序列,序列一为:A类指令2条,B类指令1条,C类指令2条;序列二为:A类指令4条,B类指令1条,C类指令1条。指令序列中用到的A、B和C三类指令的CPl分别为1、2和3,则以下哪个结论是错误的?(B)A.代码序列一比序列二少1条指令B.代码序列一比序列二的执行速度快C.代码序列一的总时钟周期数比序列二多1个D.代码序列一的CPI比序列二的CPl大9 .假定用不同的编译器对同一个程序进行编译生成的指令序列为:序列一为:A类指令5条,B类指令1条,C类指令1条:序列二为:A类指令10条,B类指令1条,C类指令1条。两个指令序列在时钟周期为2ns的机器上运行。根据计算,得出其MIPS指标和执行速度两方面的结论为(B)。A.序列一的MIPS数比序列二多50,序列一的执行速度也比序列二快10sB.序列二的MIPS数比序列一多50,但序