dhrystone测试结果_CPU性能测试分析MIPS、DMIPS

一 what

MIPS: million instruction per second,表示每秒多少百万条指令,如 10MIPS ,表示每秒一千万条指令。

MIPS/MHz : 表示 CPU 在每 1MHz 的运行速度下可以执行多少个MIPS ,如 10MIPS/MHz,表示如果 CPU 运行在 1MHz 的频率下,每秒可执行一千万条指令,如果 CPU 运行在 5MHz 的频率下,每秒可执行五千万条指令。

DMIPS: Dhrystone MIPS,并非字面上每秒百万条指令的意思。它是一个测量CPU运行一个叫Dhrystone(整数运算)的测试程序时表现出来的相对性能高低的一个单位(很多场合人们也习惯用MIPS作为这个性能指标的单位)。

Dhrystone: 是于1984年由Reinhold P. Weicker设计的一套综合的基准程序,该程序用来测试CPU(整数)计算性能。其名“Dhrystone”是与另一算法“Whetsone”区分而设计的名字。与Whetsone不同,Dhrystone并不包括浮点运算,其输出结果为每秒钟运行Dhrystone的次数,即每秒钟迭代主循环的次数。

Dhrystone的重要性在于其能作为处理器整数计算性能的指标。很多现代的编译器应用了静态代码分析技术,会将对输出没有影响的代码忽略,这会使很多基准测试代码不能正常运行,包括早些版本的Dhrystone。之后Weicker于1988年开发出了2.0版本,并于同年五月开发出了2.1版本,基本解决了这一问题。

Dhrystone所代表的处理器分数比MIPS(million instructions per second 每秒钟执行的指令数)更有意义,因为在不同的指令系统中,比如RISC(Reduced Instruction Set Computer精简指令集计算机)系统和CISC(Complex Instruction Set Computer复杂指令集计算机)系统,Dhrystone的得分更能表现其真正性能。由于在一个高级任务中,RISC可能需要更多的指令,但是其执行的时间可能会比在CISC中的一条指令还要快。由于Dhrystone仅将每秒钟程序执行次数作为指标,所以可以让不同的机器用其自身的方式去完成任务。另一项基于Dhrystone的分数为DMIPS(DhrystoneMIPS),其含义为每秒钟执行Dhrystone的次数除以1757(这一数值来自于VAX 11/780机器,此机器在名义上为1MIPS机器,它每秒运行Dhrystone次数为1757次)。

作为一项基准程序Dhrystone具有以下缺陷:

它的代码与具有代表性的实际程序代码并不相同。

它易受编译器影响。举例来说,在Dhrystone中有大量的字符串复制语句,用来测量字符串复制的性能。然而Dhrystone中字符串的长度不变,并且均开始于自然对齐的边界,这两点便与真实的程序不同。因此一个优化性能好的编译器能够在去掉循环的情形下通过一连串字的移动替代对字符串的复制,这将会块很多,可能会高达30%。所以我们在编译测试程序的时候,如果指定编译器的优化等级的话,我们会发现在不同的优化登记下,表现出来的性能指标会有差别,优化等级越高,性能指标越好,以下是一款芯片在不同的优化登记下的指标参数

Dhrystone代码量过小,在现代CPU中,它能够被放进指令缓存中,所以它并不能严格的测量取指性能。

DMIPS/MHz: 表示 CPU 在每 1MHz 的运行速度下可以执行多少个DMIPS,由于DMIPS与CPU频率具有正相关性,所以这一分数更容易比较不同的CPU在不同的时钟频率下运行Dhrystone的结果。

从上面的几个概念来看,都是为了评估cpu的性能—cpu的计算速度,由此引申开来,在软件行业,都需要一个基准测试程序,来评估某种性能----比如CPU的运算效率或者内存效率,我们称之为benchmark。比如在评估cpu运算速度领域,就有上面提到的dhrystone,coremark,whetstone等等;在评估内存效率上,有mem_test等等;评估web功能的有Apache Benchmark,Redis-Beachmark等等

二 how

dhrystone软件如何测试性能呢?

我们可以从网上搜到到dhrystone软件的source code。

其实也就是三个文件,分别是dhry.h、dhry_1.c、dhry_2.c。如果是在linux环境下开发的话,我们需要配置好makefile,然后编译并生成可执行程序,运行即可;如果实在其他平台上,比如实在单片机ARM上开发的话,有些集成的IDE会自带这些功能,我们只需要porting过来即可,具体实现方法我没有研究过,可以在csdn上搜索查找类似的解决办法。

DMIPS如何测试?

这里给一个github的代码下载地址:https://www.openwrtdl.com/wordpress/来测测路由器cpu性能跑分

我们获取到dhrystone性能之后,如何将他转换成DMIPS,这个转换关系暂时还没有搜到

标签:性能,Dhrystone,指令,MIPS,DMIPS,CPU

来源: https://blog.csdn.net/myselfzhangji/article/details/100730583

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值