您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > Dhrystone-Benchmark
Dhrystone分析报告whetstone有很多局限和不足,为了弥补这种不足,也为了适应形势的发展,Reinhold.p.Weicker在1984年仿造whetstone的形式,设计了Dhrystone一个关于系统编程的台成基准程序。不同的应用使用语言的不同特性。适合用不同的语言实现。高级语言是联系算法和计算机结构的桥粱。Dhrystone主要测试的就是计算机结构对在系统编程中经常用到的语言特性的支持能力。Weicker对16个关于不同编程语言使用特性的统计数据进行了分析。这些数据有静态的也有动态的。但从性能观点来看,程序的动态测量比静态测量更有趣一些,也更难收集和花费更大的开消。因此动态的数据较少。涉及到的语言有Fortran,PL/I,XPL,SAL,ALOOL68,Pasca1,C,Ada。数据关于系统编程的居多,也有数值计算和商业用的程序。作者对这些程序进行了比较和分析,对关于系统编程的数据给予了较多的重视。仿造whetstone的方式,设计了几个测试不同语言现象的模块,程序最初是用Ada写的,但它设计的方式使它可以建立几个不同语言的版本如Pascal版本和C版本。但是如果要用不具备某些能力(如指针,记录型数据结构)的语言(如Fortran)实现。whetstone是非常困难而无意义,因为如果试图用Fortran语言的特性如index来模拟指针类型,那将把基准程序变成了一个不同的程序了。Dhtrystone基准程序主要由主程序和3个函数、8个过程组成。另外,还有用来计时的3个函数和一个空过程。各函数和过程分别用来测试字符串、记录及整数运算其参数和主要测试内容见表1。程序经过精心设计和反复测试使得其三种语句:控制语句、赋值语句、函数过程调用语句达到一定的分布,同时又使数据类型、语句类型及教据分布达到均衡。程序没有过程的静态嵌套。这一点使之缺乏代表性。函数和过程有长有短.多数较简单。也有几个较为复杂的如proc-1,每个函数或过程的执行次数都相当少,除func-1和proc-7均为3次外,其余均为1次。程序中的循环执行次数也都较步。多为1~2次。这些都和系统编程的特性是一致的。程序中有很多部分并不执行,每次循环运行程序主体时执行的是同样部分。执行上述程序需要的时间在根大程度上取决于是否有cache及其使用,且不管在程序运行时代码、数据或两者都是否在cache中。过程proc-8中的数组存取的分布将导致至少有一cache不命中的情况。最常用的潞量执行时间的方法是把基准程序包括在一个循环中,执行比如说50000次,而且想要更精确的话,减去一个空循环的执行10000次的时间不过上述方法过于依赖cache的影响了。因为Dhrystone基准程序根小,如果cache的容量高于一定的最小值的话,代码和相当程度的数据将会一直在cache中。一个更精确的程序应试图去平衡这种影响,通过复制代码和数据,迫使数据流根据一定的统计数据在系统的整个地址空间上运行。因Dhrystone担简单,没有做包括这种机制的尝试。Dhrystone程序易于移植,它为关于结构或编译程序的讨论提供了一个较好的基准程序。用Dhrystone得到的结果作为一种衡量标准可较准确地反映一个特定的硬件/编译程序结合对系统程序应用产生的影响。但是在使用此程序来比较不同处理机或不同系统时,必须仔细检查各个细节方面:如语言影响,编译程序影响,测量方法和cache的影响等。用任何一种单个的数值作为评价处理机结构或编译程序的唯一标准都有其内在的局限性,但如果使用的好的话,Dhiystone对编程语言和计算机接口方面的性能测试具有相当的价值
本文标题:Dhrystone-Benchmark
链接地址:https://www.777doc.com/doc-4404449 .html