点击上方蓝字关注我们
点击上方蓝字关注我们
在制作完嵌入式设备的新板,有些情景需要对各个性能进行测试,主要包括
cpu: i.mx8mq OS:Android 11 Kernel version:kernel 5.10
- CPU测试: nbench
- Memory测试: stream , tinymembench
- Storage测试: dd, hdparm
- Ethernet测试: iperf
1. CPU测试
nbench
(也称为 BYTEmark)是一个用于测量计算机性能的基准测试工具。它主要关注计算机的整体性能,包括数值计算、字符串操作、位操作、浮点运算等方面。
1.1 nbench 移植
官网:Linux/Unix nbench 操作系统 (utah.edu)
wget http://www.math.utah.edu/~mayer/linux/nbench-byte-2.2.3.tar.gz
tar zxvf nbench-byte-2.2.3.tar.gz
cd nbench-byte-2.2.3
# 设置交叉编译器
make CC=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-gcc
# 将生成nbench 放入至设备中运行
1.2 nbench 使用结果分析
图1.1 nbench 测试
evk_8mq:/data # ./nbench
BYTEmark* Native Mode Benchmark ver. 2 (10/95)
Index-split by Andrew D. Balsa (11/97)
Linux/Unix* port by Uwe F. Mayer (12/96,11/97)
TEST : Iterations/sec. : Old Index : New Index
: : Pentium 90* : AMD K6/233*
--------------------:------------------:-------------:------------
NUMERIC SORT : 559.52 : 14.35 : 4.71 # 数值排序
STRING SORT : 146.2 : 65.33 : 10.11 # 字符串排序
BITFIELD : 2.163e+08 : 37.10 : 7.75 # 位域操作
FP EMULATION : 209.24 : 100.40 : 23.17 # 浮点数模拟
FOURIER : 13697 : 15.58 : 8.75 # 傅里叶变换
ASSIGNMENT : 10.486 : 39.90 : 10.35 # 赋值操作
IDEA : 3119.5 : 47.71 : 14.17 # IDEA 算法测试
HUFFMAN : 982.61 : 27.25 : 8.70 # Huffman 编码测试
NEURAL NET
2. Memory 测试
tinymembench
是一个用于评估内存性能的轻量级测试工具。它的设计目标是提供一个简单但可靠的方式来测量系统内存的基本性能指标,例如内存带宽和访问延迟。
git clone https://github.com/ssvb/tinymembench.git
cd tinymembench
# 根据readme信息
#Example of crosscompiling and running the benchmark on android device:
# $ CC=arm-linux-gnueabihf-gcc CFLAGS="-O2 -mcpu=cortex-a8 -static" make
# $ adb push tinymembench /data/local/tmp/tinymembench
# $ adb shell /data/local/tmp/tinymembench
CC=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-gcc CFLAGS="-O2 -mcpu=cortex-a53 -static" make
在这里需要注意选择CPU的架构,如何查询,可以通过
cat /proc/cpuinfo
# 重点查看 CPU part 这里展示一部分
processor : 3
BogoMIPS : 16.66
Features : fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
CPU implementer : 0x41
CPU architecture: 8
CPU variant : 0x0
CPU part : 0xd03 #关键
CPU revision : 4
3. Storage测试
3.1 hdparm 工具
# 源码下载
wget https://zenlayer.dl.sourceforge.net/project/hdparm/hdparm/hdparm-9.56.tar.gz
tar zxvf hdparm-9.56.tar.gz
cd hdparm-9.56.tar.gz
make LDFLAGS="-static" CC=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-gcc
# adb push device
但是在Android 有些错误,后续跟踪,但在Ubuntu系统使用正常。
3.2 dd工具
使用 dd
命令是一种简单而直接的方法来测试 存储性能。可以通过调整命令参数以及观察执行结果来获得关于读写速度的信息。
写入速度
dd if=/dev/zero of=/mnt/sdcard/testfile bs=1M count=100
读取速度
dd if=/mnt/sdcard/testfile of=/dev/null bs=1M
4. Ethernet 测试
对于网络测试这个应该不陌生了,使用iperf,这里需要注意的问题是iperf有iperf2和iperf3,这两个是不要混用,客户端和服务器需要采用同一个版本。
4.1 iperf3编译
weget https://iperf.fr/download/source/iperf-3.1.3-source.tar.gz
tar zxvf iperf-3.1.3-source.tar.gz
# 这里需要注意的是,对于iperf3 使用的tmpw文件路径需要修改
# 看下面修改具体情况,修改完毕后编译
mkdir $PWD/_install
./configure --prefix=$PWD/_install CC=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-gcc LDFLAGS=-static AR=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-linuxgnu/bin/aarch64-linux-gnu-ar
make LDFLAGS="-static"
图4.1 iperf3 error
evk_8mq:/data # export TMPDIR=/data/local/tmp
4.2 iperf3 测试
嵌入式设备端启动客户端模式:
iperf3 -c 192.168.150.102 -t 5
电脑端启动服务器模式
iperf3 -s
5. 总结
本文章主要对CPU/GPU/Memory/Storage/Ethernet的工具简单介绍,不过还有很多其他的工具这里不再一一介绍,以上所提工具都一一动手测试过,对于工具寻找适合就行,有很多厂商自带测试工具,下一章节将对CPU压力测试,GPU压力测试等 进行测试。
有兴趣添加微信群交流