现代基准测试程序种类以及使用方法

news2024/11/15 8:27:26

文章目录

  • 基准测试程序种类
  • 常见测试程序概述
  • 常见测试程序使用
    • Dhrystone的使用
    • UnixBench的使用
    • CPU-Z的安装与使用
  • 参考文献

现代计算机的性能测量极大地依赖于在其上运行的工作负载,为了测量和分析计算机系统的性能人们常常选择或构造一组能反映其工作负载特征的程序,称为基准程序在系统上组织和运行这些程序,测量系统此时呈现的性能状况并加以分析和比较,这种方法称为基准程序法,这是目前被用得相当普遍并被广泛承认的一种综合评价计算机系统性能的方法。

基准测试程序种类

基准测试程序(Benchmark)用来测量机器的硬件最高实际运行性能,以及软件优化的性能提升效果,可分为微基准测试程序(Microbenchmark)和宏基准测试程序(Macrobenchmark)。微基准测试程序用来测量一个计算机系统的某一特定方面,如CPU定点/浮点性能、存储器速度、I/O速度、网络速度或系统软件性能(如同步性能);宏基准测试程序用来测量一个计算机系统的总体性能或优化方法的通用性,可选取不同应用,如Web服务程序、数据处理程序以及科学与工程计算程序。

Benchmark 测试在计算机领域中最广泛和最成功的应用是性能测试, 主要测试响应时间、传输速率和吞吐量等。此外, 它也用于功能、可操作性和数据处理开发易用性等方面的测试 。按照 Benchmark 的思想, 它还可以有更广泛的用途, 但目 前性能以外有影响的 Benchmark 测试很少。

Benchmark 测试有些偏重于硬件, 有些偏重于软件, 还有些注重整个系统。在硬件方面广泛应用于评价 CPU、内存、I/O 接口和外围设备的性能, 主要测试两个方面性能指标: 一是硬 件传输数据的带宽, 称为带宽基准测试(Bandwidth benchmark) ; 二是数据传输的延迟, 称为延迟基准测试(Latency benchmark) 。在软件方面, 它用于评价操作系统、数据库和中间件以及应用 软件的数据处理能力。

Benchmark 测试根据被测试对象的不同可分为两类: 组件测试和系统测试。组件测试是指测试的重点是针对信息系统中的某一部件或某一子系统, 如 CPU、内存、磁盘、总线、文件系统、网络设备等。系统测试则是对整个计算机系统或信息系统 进行测试。在系统测试中, 由于关注点不同, 使用的 Benchmark 测试规范就不同, 则测试作用和度量指标也不同。不论是哪种 Benchmark 测试, 都必须在一个完整的计算机系统上进行, 因此, 整个系统中的所有部分都可能对 Benchmark 测试结果产生影响, 特别是硬件的配置水平、操作系统、编译器和数据库管理系统。 使用不同的 Benchmark 测试规范评价同一个被测试系统时, 可能出现不一致的测试结果。在进行同类系统比较时, 可能 出现差异较大的结果。造成这一现象的原因复杂, 但主要原因是所有的 Benchmark 测试规范有各自的侧重点, 揭示出的系统瓶颈存在差异。

不同的基准测试程序,侧重目的不同:有的测试CPU性能,有的测试⽂件服务器性能,有的测试输⼊、输出界面,有的测试⽹络通讯速度等。根据不同用途,测试程序可有专用和通用之分。现代的基准测试程序依照他们的设计目标可被分为通用计算、流式计算、移动计算、云计算等四个大类。其中通用计算又可被分为桌面和服务器两个小类。

常见测试程序概述

下面将介绍常见的一些基准测试程序。

IOzone 由 Oracle 的 William D.Norcott 发起, 之后 HP 公司 的 Don Capps 和 Tom McNeal 对其进行了完善。它是一个可运 行 在 Linux、HP- UX、Solaris 和 Windows 系 统 上 的 文 件 系 统 Benchmark 测试工具。IOzone 的开发目的是分析计算机平台生 产厂商的文件系统的 I/O 性能, 为用户选择系统提供参考。 IOzone 将 文 件 系 统 的 I/O 作 为 基 本 负 载 对 文 件 系 统 进 行 Benchmark 测试, 允许测试者调整参数, 包括从很小到非常大 的文件和不同的访问方式。IOzone 可测试本地系统, 也可测试 客户机/服务器环境下的 NFS( Network File System) 客户端文 件访问。 IOzone 的测试项包括: 读/写、重复读/写、后向读、跨越读、 流文件读/写系统库函数( fread/fwrite) 、随机读/写、偏移量读/写 库函数( pread/pwrite) 、POSIX 异步读/写和文件映射内存的系统 库函数 mmap。

Lmbench 是由 SGI 公司的 Larry McVoy 和 HP 公司的 Carl Staelin 设计开发的一组小型 Benchmark 测试程序集, 它可以测 试处理器、内存、网络、文件系统和磁盘中的数据传输和数据带 宽。LMbench 的作者希望能够在广泛的应用领域中发现被测试 系统的性能瓶颈, 并能识别、隔离和再现这些瓶颈。 LMbench 由许多小测试程序组成, 每个测试程序能够捕获 应用中的某些特定性能问题。它遵守 GPL 许可协议, 可获得源 代码。它可以运行在 AIX、BSDI、HP- UX、IRIX、Linux、FreeBSD、 NetBSD、OSF/1、Solaris 和 SunOS 系统上。 LMbench 集中在测试带宽、延时和这两者的组合问题上: (1) 带宽基准测试, 可细分为: 被缓冲的文件读, 利用系统调 用 bcopy 的内存复制、内存读、内存写、管道(Pipe) 和 TCP 传输。(2) 延时基准测试, 可细分为: 进程上下文切换、组网( 其中 包括: 建立连接、管道、TPC、UDP 和 RPC) 、文件系统的建立和 删除、进程创建、信号操作、系统调用代价和内存读延时。(3) 杂项, 只有处理器时钟速度测试一项。

Whetstone 它是为比较不同的计算机的浮点性能而设计的综合型基准测试程序,最早用 Algol-60 写成,后用 Fortran 改写。这是从英国国立物理实验室 1970 年是常用的数值计算程序中取出的最频繁使用的有代表性的程序段。这些程序段语句转换到称为 Whetstone 虚拟计算机上的指令,因而得名 Whetstone 基准测试程序。此基准测试程序包括整数运算,又包括浮点运算,涉及到数组下标索引,子程序调用,参数传递,条件转移和三角、超越函数等,使用系统完成的 Kwhetstone/s 数度量。

Dhrystone 它主要为测试整数与逻辑运算性能二设计的综合型基准测试程序,用 Ada,C 和 Pascal 完成,它是 CPU 密集 (CPU-intensive )型测试程序,由很多整型语句和逻辑语句的小循环组成。它使用系统完成的 Kdhrystone/s 数度量。
测试程序可访问 netlib/benchmark/dhrystone

SPEC 是 Standard Performance Evaluation cooperation 的首字母缩写,它是作为 NCGA(National computer graphics association )的一个小组 20 世纪 80 年代创立,这个小组的创始者来源于 HP,DEC,MIPS , SUN, 他们拥有一组基准测试程序以评测新机器的性能。第一组基准测试程序叫 SPEC89 ,包含 10 个程序; SPEC92 扩从到 20 个程序, 6 个整数程序,和 14 个浮点程序分别称为 SPECint92,SPECfp92 。随后 SPEC 又发布了一些新的基准测试程序(如 SPEC95,SPEChpc96,SPECweb96, SPEC2000 等)。 SPEC 原主要是测试 CPU 性能的,现在强调开发能反映真实应用(如实际负载等)的基准测试程序,并已推广至客户 / 服务器计算,商业应用, I/O 子系统等。

常见测试程序使用

下面将演示常用的基准测试程序的安装与使用。

Dhrystone的使用

下载核心程序包

http://www.roylongbottom.org.uk/classic_benchmarks.tar.gz

核心程序包下载后,在

\classic_benchmarks\source_code\dhrystone2\下可找到源代码。详细文件目录如下:

\classic_benchmarks\source_code\dhrystone2
                                          \dhry.h          --关于兼容性的原型定义
                                          \dhry_1.c        --主程序入口
                                          \dhry_2.c        --算法子程序

如果是移植到ARM Cortex-M平台下裸系统运行,一般只需要简单修改dhry.h和dhry_1.c文件即可,Dhrystone本身并没有太多移植工作,其源码本是用作在PC上运行的,而在嵌入式系统里运行仅需要把一些文件I/O的相关代码删除即可,此外就是计时函数和打印函数的重实现。

我在学校的服务器上测试,先将源代码上传到服务器,进行解压
在这里插入图片描述

运行主程序

gcc dhry_1.c dhry_2.c cpuidc64.o cpuida64.o -m64 -lrt -lc -lm -o dhry2 

进行编译获得测试结果

Dhrystone Benchmark  Version 2.1 (Language: C)

 Final values:

 Int_Glob:      O.K.  5
 Bool_Glob:     O.K.  1
 Ch_1_Glob:     O.K.  A
 Ch_2_Glob:     O.K.  B
 Arr_1_Glob[8]: O.K.  7
 Arr_2_Glob8/7: O.K.     1600010
 Ptr_Glob->
   Ptr_Comp:       *  98008
   Discr:       O.K.  0
   Enum_Comp:   O.K.  2
   Int_Comp:    O.K.  17
   Str_Comp:    O.K.  DHRYSTONE PROGRAM, SOME STRING
 Next_Ptr_Glob->
   Ptr_Comp:       *  98008 same as above
   Discr:       O.K.  0
   Enum_Comp:   O.K.  1
   Int_Comp:    O.K.  18
   Str_Comp:    O.K.  DHRYSTONE PROGRAM, SOME STRING
 Int_1_Loc:     O.K.  5
 Int_2_Loc:     O.K.  13
 Int_3_Loc:     O.K.  7
 Enum_Loc:      O.K.  1
 Str_1_Loc:     O.K.  DHRYSTONE PROGRAM, 1'ST STRING
 Str_2_Loc:     O.K.  DHRYSTONE PROGRAM, 2'ND STRING

 Register option      Selected.

 Microseconds 1 loop:          4.53
 Dhrystones / second:      220690
 VAX MIPS rating:            125.61

UnixBench的使用

首先获取软件下载地址
在这里插入图片描述
对压缩包进行解压

tar -xzvf unixbench-5.1.2.tar.gz
cd unixbench-5.1.2

阅读README文件,得知如果不需要进行图形测试或者不在图形化界面下测试,则将Makefile文件中GRAPHICS_TEST = defined注释掉

运行./Run

然后等待程序进行测试即可,这个过程可能比较漫长,请耐心等待
在这里插入图片描述
对于运行结果,说明如下:
看到run文件后,输入 ./Run 执行命令对VPS进行性能测试就开始了,最后跑完将会有一个分数在底部出现。通常情况下1000分以上的VPS是性能较好的。

CPU-Z的安装与使用

下载地址 https://www.cpuid.com/downloads/cpu-z/cpu-z_2.03-cn.exe

在这里插入图片描述
安装成功后,可以对计算机性能进行测试
在这里插入图片描述
在这里插入图片描述

参考文献

[1]马汉.CPU检测软件有哪些 5款检测工具介绍[J].计算机与网络,2014,40(17):30.
[2]系统测试软件CPU-Z 1.08[J].电子计算机与外部设备,2001(06):94.
[3]徐钦桂,李勇,张杰明,Guang R.Gao.基于比较策略的嵌入式系统性能基准测试研究[J].计算机工程与应用,2005(19):93-96+153.
[4]Narayanan R,Ozisikyilmaz B,Zambreno J,et al.MineBench : A Bench-mark Suite for Data Mining Workloads[C]/ /Proceedings of the Work-load Characterization,2006 IEEE International Symposium,2006.
[5]Group IR.Parboil benchmark suite [R].2007.
[6]Che S,Boyer M,Meng J,et al.Rodinia : A benchmark suite for hetero-geneous computing[C]/ /Proceedings of the 2009 IEEE International Symposium on Workload Characterization ( IISWC).IEEE ComputerSociety,2009 : 44 54.
[7]刘德才,王鼎兴,沈美明,郑纬民.计算机性能指标MIPS的适用性分析[J].小型微型计算机系统,1994(11):7-12.
[8]叶亚明,刘横.基准程序法[J].计算机学报,1992(04):295-303.
[9]13.Securis Inc.Security Benchmark.com.http: //www.securitybenchmark. com/, 2005- 10 14.
[10]M Dal Cin.Dependability Benchmarking.http: //www.esat.kuleuven. ac.be/electa/dbench, 2003- 09 15.
[11]Dave Patterson, Armando Fox.The Berkeley/Stanford Recovery- Oriented Computing(ROC) Project.http: //roc.cs.berkeley.edu/, 2005- 11
[12]Cooper B F,Silberstein A,Tam E,et al.Benchmarking cloud serving systems with YCSB[C]//Proceedings of the 1st ACM symposium on Cloud computing.Indianapolis,Indiana,USA;ACM.2010:143 -154.
[13]Ferdman M,Adileh A,Kocberber O,et al.Clearing the clouds:a study of emerging scale-out workloads on modern hardware[C]//Proceedings of the seventeenth international conference on Architectural Support for Programming Languages and Operating Systems.London,England,UK;ACM.2012:37 -48.
[14]Bienia C,Kumar S,Kai L.PARSEC vs.SPLASH-2:A quantitative comparison of two multithreaded benchmark suites on Chip-Multiprocessors[C]//Proceedings of the Workload Characterization,2008 IISWC 2008 IEEE International Symposium on Workload Characterization,2008.
[15]徐洁,王华,吴晓华,王雁东.浅析SPEC基准测试程序集及评价指标[J].实验科学与技术,2010,8(06):21-24.
[16]吕超,戴晨,张为华.计算机体系结构基准测试程序集的研究[J].计算机应用与软件,2013,30(10):189-194.
[17]刘杰,迟利华,蒋杰,徐涵,晏益慧,胡庆丰.大规模并行计算机系统性能测评体系[J].计算机工程与科学,2013,35(03):25-30.
[18]辛思达,王强,范方园,张春元. 面向通用可重构体系结构的基准测试程序集构建与评测[C]//.第十九届计算机工程与工艺年会暨第五届微处理器技术论坛论文集.,2015:162-170.

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python文件转换成exe可执行的windows文件

一、介绍 python的程序需要运行环境有时候很不方便,因为要交给别人代码可能因为环境的原因运行各种问题,这里给出直接讲python程序转换成exe文件,很方便直接给执行程序就可以,也不用担心运行环境问题而运行不了 二、工具 1、安装…

[奶奶看了都会]ChatGPT保姆级注册教程

大家好,我是小卷 最近几天OpenAI发布的ChatGPT聊天机器人火出天际了,连着上了各个平台的热搜榜。这个聊天机器人最大的特点是模仿人类说话风格同时回答大量问题。 有人说ChatGPT是真正的人工智能,它不仅能和你聊天,还是写小作文…

[附源码]Python计算机毕业设计SSM基于微信平台的匿名电子投票系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

web课程设计网页规划与设计 HTML+CSS+JavaScript仿英雄联盟LOL首页(1个页面)

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

第4季4:图像sensor的驱动源码解析

以下内容源于朱有鹏嵌入式课程的学习与整理,如有侵权请告知删除。 一、sensor驱动源码的框架 mpp定义了一整套sensor驱动的实现和封装,这里以ar0130型号的sensor为例进行说明。 1、sensor层驱动 (1)sensor层驱动位于mpp/componen…

Java基础面试题

请介绍全局变量和局部变量的区别 Java中的变量分为成员变量和局部变量,它们的区别如下: 成员变量: 成员变量是在类的范围里定义的变量;成员变量有默认初始值;未被static修饰的成员变量也叫实例变量,它存储于…

知识图谱-KGE-语义匹配-双线性模型-2019:TuckER

【paper】 TuckER: Tensor Factorization for Knowledge Graph Completion【简介】 这篇文章是英国爱丁堡大学的研究者发表于 ICML 2019 上的文章,提出了 TuckER,是一个线性的张量分解模型,对表示三元组事实的二值张量做 Tucker 分解。 背景…

python中nmupy获取本地数据和索引

1. numpy读取数据 可以使用numpy中的loadtxt进行数据读取,所包含的参数如下 参数名解释frame文件,字符串等也可以是.gz或bz2压缩文件dtype数据类型,即CSV中字符串以什么数据类型读入数组中,默认是np.floatdelimiter分隔字符串&a…

CAS:2379387-10-5;TPE-丙烯酰胺;AIE聚集诱导发光

英文名称:2-Propenamide,N-[4-(1,2,2-triphenylethenyl)phenyl]- 英文同义词:2-Propenamide,N-[4-(1,2,2-triphenylethenyl)phenyl]- CAS号:2379387-10-5 分子式:C29H23NO 分子量:401.5 结构式: AIE聚集诱导发光材料的特点: 1.在固态下有强发光特性&…

Typecho-handsome主题如何统计全站字数

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…

phpstudy2020安装及简单使用教程

phpstudyV8.0以上使用教程 简介安装步骤配置搭建网站自己的第一个PHP程序 最新版长这样 简介 按我的理解,phpstudy是一个集成式的PHP运行环境,虽然是个软件,但他实现的功能就是给PHP语言编写的脚本赋予一个可执行的环境,可以…

GPR(高斯过程回归)

写在前面:   本文为科研理论笔记的第三篇,其余笔记目录传送门: 理论笔记专栏目录 介绍结束下面开始进入正题: 1 高斯分布 ​   一元高斯分布的概率密度函数为: p(x)1σ2πexp⁡(−(x−μ)22σ2);简写为&#xff…

Lecture2:损失函数及优化

目录 1.损失函数 1.1 支持向量机SVM 1.1.1 SVM的代价函数及优化目标 1.1.2 如何理解将SVM成为大间距分类器 1.1.3 大间距分类器的数学原理 1.1.4 SVM核函数(构建非线性分类器) 及控制点的选择 1.1.5 构建自己的SVM 1.2 softmax分类器 1.3 soft…

06-07-08 - 突破512字节的限制

---- 整理自狄泰软件唐佐林老师课程 1. 突破限制的准备工作 辅助函数 字符串打印软盘读取内存比较根目录区查找 1.1 字符串打印 问题: 主引导程序中如何进行字符串的打印? 1.1.1 BIOS中的字符串打印 指定打印参数(AX 0x1301&#xff0…

Web大学生网页作业成品:个人博客主页 (纯HTML+CSS代码)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

HUST编译原理实验2

语法分析,建立并显示语法树 以识别 a 10.01; 为例,阐述语法分析的构造过程 1. 建立AST储存结构 由a 10.01得知,语法构成为: SentenceList->Sentence->Exp SEMI->ID ASSIGNOP FLOAT SEMI因此,需要储存结构如下 typ…

Java数据结构与Java算法学习Day10---图的了解和无向图(简略笔记记录)

目录 1.1图的定义及分类 142 1.2无向图 143 1.2.1图的相关术语 143 1.2.2无向图的存储结构 144 1.3图的API设计 145 1.4图的搜索 146 1.4.1深度优先搜索 146 1.4.2深度优先搜索API设计 147 1.5广度优先搜素 149 1.5.1广度优先搜索API设计及代码实现 150 1.5.2广度…

QT 系统学习 day04 事件(鼠标,键盘), UDP 通信, TCP 通信,多个定时器,重写绘画事件

1. 事件 (有 键盘按下, 鼠标按下, 鼠标双击等) 1.重写键盘按下事件, 函数: void keyPressEvent(QKeyEvent *event) /*** 按键按下事件 ***/ 代码: void keyPressEvent(QKeyEvent *event) /*** 按键按下事件 ***/{q…

【吴恩达机器学习笔记】十五、大规模机器学习

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📣专栏定位:为学习吴恩达机器学习视频的同学提供的随堂笔记。 📚专栏简介:在这个专栏,我将整理吴恩达机器学习视频的所有内容的笔记&…

低代码开发平台——体验系统的重要性

什么是优秀的体验? 简而言之,优质的体验意味着可以随时随地根据客户的需求提供服务,这在数字化的世界中,意味着真正的多重体验。Gartner早在2018年就定义了MXDP(多体验开发平台),以应对我们日常…