ARM Linux BenchMark【转】

摘要:
什么是系统基准:Dobea知道这是系统基准,而不是CPU、RAM或skbenchmark。结果不仅取决于硬件,还取决于操作系统、库,甚至编译器④ 广泛用于系统测试的UnixBench是为PC上的Linux而设计的,嵌入式开发板需要交叉编译。需要注意的一点是,在Linux启动期间,BogoMIPS可能无法准确打印。在这方面,我们可以参考ARM的官方说明并使用Dhrystone。当然,在计算能力测试方面,现在我们可能更认可CoreMark和CPU2006,而不是Dhrystone。举一个CLFAGS的例子:这些参数可以用于在内核启动后使用cat/proc/cpuinfo查看Arch架构。

转自:https://blog.csdn.net/sy373466062/article/details/49070025

背景说明

许多公司有很多不同的ARM SoC的研发产品,ARM核心可能有Cortex-A8/A9/A15,核心数可能有单核双核和四核.现在,几乎每出一款手机,网络上马上就有人对其评测.对比和评测不同ARM SoC 芯片以及嵌入式系统是非常有必要的;通过不同的SoC和其运行的OS对比,可以帮助我们了解我们产品的性能,并根据测试得知系统的瓶颈、找出需要改善的方面。

嵌入式产品的硬件一般都是由处理器、主存、存储器、显示设备、以及其他外设组成。嵌入式产品的软件方面,一般都选用嵌入式系统,如小的RTOS,如VxWorks、μC/OS-III、RTT、DJYOS、FreeRTOSLinux,或者是更复杂的Linux、Android、WinCE。评测和对比的内容一般也主要由软件和硬件这两个方面组成。

预备基础知识

如果只是对Andorid系统或者是WinCE相关系统评测,那么我们完全可以下载一些应用(安装)运行即可评测。而如果要评测的嵌入式系统是基于Linux自己定制的甚至没有GUI的,则很可能需要我们下载源代码编译。因此对基础的编译知识的了解必不可少①。编译配置又与ARM SoC构架相关,所以需要了解一下与ARM构架以及有关的交叉编译的选项,比较ARM SoC种类较少,所以这类问题变得很简单了,一般我们需要根据需要配置-mfpu-march以及-mfloat-abi,以及编译优化选项。

评测工具介绍

评测工具有很多,在这个网页列出了几十个工具。单单系统性评测工具就有7个。那什么是系统性的BenchMark(引用自unixbench):

Do be aware that this is a system benchmark, not a CPU, RAM or disk benchmark. The results will depend not only on your hardware, but on your operating system, libraries, and even compiler.

系统测试

用得比较广的系统性测试工具:

  • lmbench④
  • UnixBench

这两个BenchMark软件,本身是给PC上的Linux上用的,为了给嵌入式开发板子使用,需要交叉编译。和其他嵌入式程序编译一样,一般Makefile要改的只有两个地方:

  • CC:指定为嵌入式交叉编译器
  • CFLAGS:需要根据目标板ARM芯片配置②

一些单项测试工具:

将系统测试里面的每个测试项拆开就成了单项测试,一般分为计算性能③,内存性能,图形显示。

有一点需要说明的是:在linux启动过程中会打印BogoMIPS不一定准确。这方面可以参考ARM官方的说明,使用Dhrystone,当然现在在计算能力测试方面,现在大家可能更认可CoreMark和CPU2006,而不是Dhrystone。

一些外设的测试:

SD/eMMC可以使用dd命令来测试,例如一个读写的测试命令示例:

Readsync && date && dd if=/dev/block/mmcblk0 of=/dev/null bs=4094 count=40960 && sync && date 
Writesync && date && dd of=/dev/block/mmcblk0 if=/dev/zero bs=4094 count=40960 && sync && date

使用date只能精确到秒,但是使用time命令可以精确到0.01S,所以用time更好,但是time只接受一个process作为参数。因此,需要将dd与sync整条命令放入到脚本中,再用time来运行这个脚本。

测试结果分析

如果就拿单单一个光秃秃的数据来看,会显得有些空白,所以一般用不同的板子数据进行对比来看。在lmbench中,就可以将测试结果拷贝到result中的对应OS目录中,再用make see,产生summary.out文件。其他的测试软件也有类似的功能,对于测试结果,我们需要做的是通过分析测试结果找到系统中性能与理论相差太大的不正常项目,然后去分析可能的原因并寻求解决之道。


①可以看AnTuTu and Intel这篇文章,里面提到了安兔兔对ICC编译器对Intel处理器的优化,ARM这边却连neon也没有使用。同时另一篇文章说到了安兔兔在版本变高后,评分下降的issue。

②关于编译选项,可以man gcc,搜索对应的选项来查看详细内容。给出一个CLFAGS示例:

 CFLAGS 其中这些参数可以在kernel启动后使用cat /proc/cpuinfo查看Arch架构。

③关于计算方面的测试,有一个不错的文档ARM Cortex-A8 vs. Intel Atom:,里面介绍了4中测试Integer和Float的工具,并用这些工具对Atom和Beagle Bone板子进行的测试比较和说明。另外Keil的这个网页上对这些测试程序和Item也有一些介绍。

④编译与运行可以参考这个网页的文章,需要根据直接的板子SoC更改CFLAGS。

免责声明:文章转载自《ARM Linux BenchMark【转】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇postman测试wsdl类型接口bootstrap-select 多选下拉框使用教程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux系统时间和硬件时间设置

在linux系统中有两个时间,硬件时钟和系统时间,硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟。系统时钟则是指kernel中的时钟。所有Linux相关指令与函数都是读取系统时钟的设定。因为存在两种不同的时钟,那么它们之间就会存在差异。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。 用date命令对系统时...

Linux中的16个Echo命令示例

在Linux中Echo命令是日常操作任务中广泛使用的命令之一。echo命令是一个内置的命令行工具,它可以将文本或字符串打印到标准输出或重定向输出到文件。该命令通常在bash shell或其他shell中使用,用于打印命令的输出。在bash shell脚本中也经常使用Echo命令。echo命令的语法$ echo [option] [string] 在本文中...

Vi快捷操作 vim配置【shell文件格式从windows转换为linux】

vim配置 http://www.cnblogs.com/ma6174/archive/2011/12/10/2283393.html gg 首行 dd 删除当前行 :.,$d  删除全部内容 :set number 显示行号 SHELL syntax error:unexpected end of file 提示错误 DOS下文件和Linux下文件格式差...

Linux FTP基本操作命令 ( 序列二 ftp)

1.登陆ftp服务器 ftp [IP] [PORT] # 登陆ftp服务器,本机登陆可以不写IP实例: [root@ftpsrv vsftpd]#ftp 127.0.0.1 21 Connected to 127.0.0.1 (127.0.0.1). (vsFTPd 2.2.2) Name (127.0.0.1:root): nice Ple...

Linux定时任务

1. 定时任务服务名称 crond 默认开机自动运行 自动启动 默认有系统的定时任务 2. 定时任务的相关文件 两个 用户的定时任务文件 /var/spool/cron/用户名 # 普通用户定义定时任务的配置文件 管理员的定时任务文件 /etc/crontab 3. 定时任务书写方式 格式 使用的/etc/crontab 管理员定时任务...

虚拟化技术实现 — KVM 的 CPU 虚拟化

目录 文章目录 目录 前文列表 x86 体系结构的虚拟化 硬件辅助的 CPU 虚拟化 由 VMX 切换支撑的 CPU 虚拟化技术 KVM 的 CPU 虚拟化实现 vCPU 的调度方式 客户机 CPU 拓扑和模型 虚拟机 vCPU 数量分配原则 总结 参考文档 前文列表 《虚拟化技术实现 — 虚拟化技术发展编年史》《虚拟化技术实现 — QEMU-...