CPU/内存/综合性能评估工具汇总-1:lmbench

目录

    • 一、概括
    • 二、lmbench

一、概括

嵌入式开发中对要设计的产品、立项的项目进行设计时,往往需要对关键芯片进行性能评估,本文主要总结基于linux系统的产品在性能评估时的工具使用总结,在aarch64(arm64平台下测试),板卡根文件系统为debian系统。
工具列表如下:

名称作用git源码链接
lmbench带宽测评,反应时间测评https://github.com/redrose2100/lmbench.git
stream内存带宽(每秒通过的字节数)测试https://github.com/jeffhammond/STREAM.git
unixbench测试 unix 系统基本性能,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器.https://github.com/kdlucas/byte-unixbench.git
cyclictest 和 stress-ng实时性测试压力工具 git clone https://github.com/ColinIanKing/stress-ng.git ,测试工具git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git

二、lmbench

1、编译
export CC=aarch64-linux-gnu-gcc
make clean
make
提示报错:

/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/../lib/gcc/aarch64-linux-gnu/7.5.0/../../../../aarch64-linux-gnu/bin/ld: 找不到 -ltirpc
collect2: error: ld returned 1 exit status
Makefile:295: recipe for target '../bin/x86_64-pc-linux-gnu/bw_file_rd' failed
make[2]: *** [../bin/x86_64-pc-linux-gnu/bw_file_rd] Error 1

将script/build中的 LDLIBS=“-lm -ltirpc” 改成 LDLIBS=“-lm”
make 编译通过

2、将文件夹压缩后,拷贝到嵌入式板卡中解压
3、cp -r lmbench/bin/aarch64-linux-gnu lmbench/bin/aarch64-unknown-linux ,此句在板卡中操作
4、测试,以下命令在板卡中执行

cd scripts
./config-run
根据提示 第一个提示输入1  回车 ,第二个提示输入1 回车,  第三个提示输入 128 回车
随后一直回车
直到看到 是否发邮件 输入 no 回车, 等待产生文件配置文件
./results
等待测试结果
cd  ../results
make summary percent 2>/dev/null | more > lmbench-result.txt
将lmbench-result.txt从板卡中导出

5、结果含义分析,示例结果如下

                 L M B E N C H  3 . 0   S U M M A R Y
                 ------------------------------------
                 (Alpha software, do not distribute)


Processor, Processes - times in microseconds - smaller is better
------------------------------------------------------------------------------
Host                 OS  Mhz null null      open slct sig  sig  fork exec sh
                             call  I/O stat clos TCP  inst hndl proc proc proc
--------- ------------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
driver    Linux 5.10.16 1797 0.31 0.37 0.97 2.51 5.25 0.50 2.42 174. 566. 1395

Basic integer operations - times in nanoseconds - smaller is better
-------------------------------------------------------------------
Host                 OS  intgr intgr  intgr  intgr  intgr
                          bit   add    mul    div    mod
--------- ------------- ------ ------ ------ ------ ------
driver    Linux 5.10.16 0.3700 0.1400 0.0400 4.4600 5.4300

Basic float operations - times in nanoseconds - smaller is better
-----------------------------------------------------------------
Host                 OS  float  float  float  float
                         add    mul    div    bogo
--------- ------------- ------ ------ ------ ------
driver    Linux 5.10.16 2.2300 2.2300 6.1300 2.5100

Basic double operations - times in nanoseconds - smaller is better
------------------------------------------------------------------
Host                 OS  double double double double
                         add    mul    div    bogo
--------- ------------- ------  ------ ------ ------
driver    Linux 5.10.16 2.2300 2.2300   10.0 8.9100

Context switching - times in microseconds - smaller is better
-------------------------------------------------------------------------
Host                 OS  2p/0K 2p/16K 2p/64K 8p/16K 8p/64K 16p/16K 16p/64K
                         ctxsw  ctxsw  ctxsw ctxsw  ctxsw   ctxsw   ctxsw
--------- ------------- ------ ------ ------ ------ ------ ------- -------
driver    Linux 5.10.16 1.9100 2.0300 1.9300 3.0500 3.5400 3.32000    10.1

*Local* Communication latencies in microseconds - smaller is better
---------------------------------------------------------------------
Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                        ctxsw       UNIX         UDP         TCP conn
--------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
driver    Linux 5.10.16 1.910 7.999 11.9  17.0        24.4        67.

File & VM system latencies in microseconds - smaller is better
-------------------------------------------------------------------------------
Host                 OS   0K File      10K File     Mmap    Prot   Page   100fd
                        Create Delete Create Delete Latency Fault  Fault  selct
--------- ------------- ------ ------ ------ ------ ------- ----- ------- -----
driver    Linux 5.10.16   15.6   13.0   34.8   19.4  1638.0 0.363 0.36280 2.550

*Local* Communication bandwidths in MB/s - bigger is better
-----------------------------------------------------------------------------
Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                             UNIX      reread reread (libc) (hand) read write
--------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
driver    Linux 5.10.16 2214 2956 1695 3266.6 9768.4 5202.6 5127.5 6420 7181.

Memory latencies in nanoseconds - smaller is better
    (WARNING - may not be correct, check graphs)
------------------------------------------------------------------------------
Host                 OS   Mhz   L1 $   L2 $    Main mem    Rand mem    Guesses
--------- -------------   ---   ----   ----    --------    --------    -------
driver    Linux 5.10.16  1797 2.2270 4.9450   12.1       134.1

结果解释:
Processor, Processes - times in microseconds - smaller is better
CPU处理性能各项时间数值越小越好,单位毫秒,包括:

结果名称含义解释
OSOS版本
Mhzcpu动态运行的频率
null call系统调用
null I/O模拟操作IO设备的时间
statstat 文件信息的时间
open clos打开关闭文件的时间
slct TCP网络连接的建立,管道,TCP,UDP 和RPC hot potato
sig inst信号安装时间
sig hndl信号处理时间
fork procfork一个进程的时间
exec proc执行一个模拟进程的时间
sh procshell脚本执行时间

Basic integer operations - times in nanoseconds - smaller is better
基本整形运算操作时间数值越小越好,单位:纳秒,包括

结果名称解释说明
OSOS版本
intgr bit位操作
intgr add加法操作
intgr mul乘法操作
intgr div除法操作
intgr mod取模操作

Basic float operations - times in nanoseconds - smaller is better
基本单精度浮点运算操作时间数值越小越好,单位:纳秒,包括:

Basic double operations - times in nanoseconds - smaller is better
基本双精度浮点运算操作时间数值越小越好,单位:纳秒,包括:

Context switching - times in microseconds - smaller is better
上下文切换操作时间数值越小越好,单位:毫秒,包括:

Local Communication latencies in microseconds - smaller is better

File & VM system latencies in microseconds - smaller is better

Local Communication bandwidths in MB/s - bigger is better

Memory latencies in nanoseconds - smaller is better

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/772569.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Swagger php注解常用语法梳理

Swagger php注解常用语法梳理 快速编写你的 RESTFUL API 接口文档工具,通过注释定义接口和模型,可以和代码文件放置一起,也可以单独文件存放。 Swagger 优势 通过代码注解定义文档,更容易保持代码文档的一致性模型复用&#xff0…

Spring Boot中使用SpringEvent组件

Spring的事件机制是基于观察者模式的实现,主要由以下三个部分组成: 事件(Event):事件是应用中发生的重要事情,通常是一个继承自ApplicationEvent的类。 事件发布器(Publisher)&…

ubuntu使用官方deb文件安装指定版本cuda失败,总是装成最新版

之前安装过最新版的cuda,之后想换用旧版,但是按照官网的说明,sudo apt-get -y install cuda后总是装成最新版的。 解决方法: 最后一步使用sudo apt-get -y install cuda-x-x,直接指定你要安装的cuda的版本号。

python作业一

1. #A. num int(input("请输入要打印的层数:")) for n in range(1, num1):s ""for i in range(1, n1):s f"{i}" " "print(s)#B. num int(input("请输入要打印的层数:")) for i in range(num1, 0, -1):s" "f…

springcloud+vue项目,controller层接口返回json数据,前端可以接收到数据,但浏览器“F12-->网络-->响应“显示为空的问题处理

1.显示为空的场景 SharetekR(access_tokeneyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiJQQzoxODA1ODA4ODc1MjUwMTIyNzUyIiwicm5TdHIiOiJrZEoxV05CV3NBSUdYb05TbktSU3kzOGNuSnk3c3FRTSIsInVzZXJJZCI6MTgwNTgwODg3NTI1MDEyMjc1MiwidXNlck5h…

分布式数据库HBase:从零开始了解列式存储

在接触过大量的传统关系型数据库后你可能会有一些新的问题: 无法整理成表格的海量数据该如何储存? 在数据非常稀疏的情况下也必须将数据存储成关系型数据库吗? 除了关系型数据库我们是否还有别的选择以应对Web2.0时代的海量数据? 如果你也曾经想到过这些问题, 那么HBase将是…

25届最近5年华北电力大学自动化考研院校分析

华北电力大学(北京保定) 目录 一、学校学院专业简介 二、考试科目指定教材 三、近5年考研分数情况 四、近5年招生录取情况 五、最新一年分数段图表 六、初试大纲复试大纲 七、学费&奖学金&就业方向 一、学校学院专业简介 二、考试科目指…

【C语言】刷题笔记 Day2

【笔记】 【1】局部变量不初始化,默认放的随机值。 1 int n0; 2 scanf("%d",&n); //13.141 【2】这里虽然输入的是一个浮点数,但是只取整数部分。 【3】3.156e7 表示的是3.156*10的7次方。 【4】多组输入,保存和不保存…

关于Wav2Lip配置实现

模型介绍 Wav2Lip是一种先进的深度学习模型,旨在将音频波形直接转换为面部动画,尤其关注于唇部动作的生成与同步。这一技术的核心在于其能够利用输入的语音信号,生成与之高度匹配的嘴唇动作,从而实现逼真的语音驱动数字人物动画效…

docker初始化运行mysql容器时自动导入数据库存储过程问题

问题:用navicat导出的数据库脚本,在docker初始化运行mysql容器时,导入到存储过程时出错。 ERROR 1064 (42000) at line 2452: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for t…

DataWhale-吃瓜教程学习笔记 (六)

学习视频**:第4章-决策树_哔哩哔哩_bilibili 西瓜书对应章节: 第五章 5.1;5.2;5.3 文章目录 MP 神经元- 感知机模型 (分类模型)-- 损失函数定义--- 感知机学习算法 - 随机梯度下降法 - 神经网络需要解决的问…

2024年显著性检测部分论文及代码汇总(3)

ICML Size-invariance Matters: Rethinking Metrics and Losses for Imbalanced Multi-object Salient Object Detection code Abstacrt:本文探讨了显著性检测中评价指标的尺寸不变性,尤其是当图像中存在多个大小不同的目标时。作者观察到,…

解决Python爬虫开发中的数据输出问题:确保正确生成CSV文件

引言 在大数据时代,爬虫技术成为获取和分析网络数据的重要工具。然而,许多开发者在使用Python编写爬虫时,常常遇到数据输出问题,尤其是在生成CSV文件时出错。本文将详细介绍如何解决这些问题,并提供使用代理IP和多线程…

开始尝试从0写一个项目--前端(一)

基础项目构建 创建VUE初始工程 确保自己下载了node.js和npm node -v //查看node.js的版本 npm -v //查看npm的版本 npm i vue/cli -g //安装VUE CLI 创建 以管理员身份运行 输入:vue ui 就会进入 点击创建 自定义项目名字,选择npm管理 结…

C++ 智能指针内存泄漏问题

shared_ptr相互嵌套导致循环引用 代码示例 #include <iostream> #include <memory> using namespace std;class B;class A { public:std::shared_ptr<B> b_ptr;~A() { std::cout << "A destroyed\n"; } };class B { public:std::shared_pt…

【前端项目笔记】8 订单管理

订单管理 效果展示&#xff1a; 在开发功能之前先创建分支order cls 清屏 git branch 查看所有分支&#xff08;*代表当前分支&#xff09; git checkout -b order 新建分支order git push -u origin order 将本地的当前分支提交到云端仓库origin中命名为order 通过路由方式…

014-GeoGebra基础篇-快速解决滑动条的角度无法输入问题

有客户反馈&#xff0c;他的Geogebra一直有个bug&#xff0c;那就是输入角度最大值时总不按照他设定的展示&#xff0c;快被气炸了~ 目录 一、问题复现&#xff08;1&#xff09;插入一个滑动条&#xff08;2&#xff09;选择Angle&#xff08;3&#xff09;输入90&#xff0c;…

|从零搭建网络| VisionTransformer网络详解及搭建

&#x1f31c;|从零搭建网络| VisionTransformer系列网络详解及搭建&#x1f31b; 文章目录 &#x1f31c;|从零搭建网络| VisionTransformer系列网络详解及搭建&#x1f31b;&#x1f31c; 前言 &#x1f31b;&#x1f31c; VIT模型详解 &#x1f31b;&#x1f31c; VIT模型架…

Buuctf之不一样的flag(迷宫题)

首先&#xff0c;进行查壳无壳&#xff0c;32bit&#xff0c;丢进ida32中进行反编译进入main函数&#xff0c;对其进行分析&#xff0c;可以在一旁打上注释&#xff0c;这边最关键的一个点就是&#xff0c;需要联想到这是一个迷宫题&#xff0c;很小的迷宫题&#xff0c;迷宫就…

Kindling-OriginX 在快手 Staging 环境的异常诊断效果分享

业务可用性问题的快速诊断&#xff0c;历来是行业互联网公司面临的重大挑战&#xff0c;快手也不外如是。Kindling-OriginX的体系化设计理念快速打动了我们的工程师。快手随即开始了内部真实业务的验证落地&#xff1b;落地过程中&#xff0c;Kindling-OriginX能高效覆盖大部分…