ZGCC性能评估

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ZGCC编译性能评测

用户态分别进行评测。在内核态,使用UnixBench分别评测自带原生内核及用ZGCC编译安装的同版本新内核性能,获得数据;在用户态,挑选典型应用,分别ZGCC与GNU GCC编译后运行,使用系统命令top及shell内建命令time测时间及内存消耗,获得数据;对比内核态及用户态数据,得出评测结论。

一. 内核态评测

1. 评测说明

1.1 工具简介

UnixBench是一个类unix(Unix,BSD,Linux)系统的性能评测工具,开源,被广泛用于测试linux系统主机的性能。如被评测主机为多CPU系统,其默认处理方式是运行两次测试,一次测试系统运行单任务的性能,一次测试系统运行多任务的性能,并分别给出测试结果。UnixBench的测试结果不仅依赖硬件,还取决于操作系统、库及编译器。

2. 评测步骤

下载最新版UnixBench5.1.3并编译,命令如下:

root@lyl:/unixbench-5.1.3# ls

Makefile pgms README results Run src testdir tmp USAGE WRITING_TESTS root@lyl:/unixbench-5.1.3# vi Makefile

# GRAPHIC_TESTS = defined //去掉图形化测试

root@lyl:/unixbench-5.1.3# make //编译

2.1 原生内核性能评测

使用如下命令启动UnixBench:

root@lyl:/unixbench-5.1.3# ./Run

运行约2小时结束,在results目录下生成2014-12-1-1.html文件,该文件含重要评测结果如下图1及图2:

图1 单任务评测结果

图2 多任务评测结果

由图1及图2知系统运行单任务性能跑分为386.1,系统运行多任务跑分为660.4。

重复以上过程10次,统计评测分数得下表1。

次数 1 2 3 4 5 6 7 8 9 10

表1 原生内核跑分统计

2.2 编译安装新内核性能评测

使用如下命令安装ZGCC:

root@lyl:/eglibc-deb# dpkg –I * //安装c库

root@lyl:/gcc-32# dpkg –I * //安装gcc工具

如出现库依赖问题导致部分deb包安装失败,使用如下命令解决:

root@lyl:/home# apt-get –f instll //-y即fix,系统自动解决库依赖

root@lyl:/home# gcc –E –v -< /dev/null

……‘-march=nano’//说明工具链安装成功

使用ZGCC工具链编译安装同版本新内核,启动UnixBench,如上重复运行10次,统计

3. 数据处理

二. 用户态评测

1. 评测说明

选取典型App,在指定Nano CPU-Ubuntu平台,用Nano gcc与GNU gcc分别编译产生可执行文件,在保证运行环境相同前提下分别运行,测时间及内存相关参数。

1.1 App选定

选择Ubuntu平台下ffmpeg与mplayer两款App,选择原因如下:

①开源

②大小合适(解压后源码70M左右)

③典型(ffmpeg用于音视频格式转换,mpleyer用于视频播放)

④涉及颜色空间转换及视频编解码,用到大量浮点运算

⑤运行时负载接近恒定,便于测量(其它如建模、3D游戏等,运行时负载波动大)

1.2 测试工具选定

第三方软件如gprof、valgrind、oProfile、google-perftools等均用于代码调优,如统计App中各函数调用次数及时间消耗等,不适合在本测试场合使用。

shell内建命令time(非系统命令/user/bin/time)可用于测量可执行文件运行详细时间消耗,系统命令top通过配置后,可用于测量可执行文件运行详细内存消耗。

故测试工具选定shell内建命令time及系统命令top。

1.3 测试项选定

①时间,测real(时钟时间)、user(用户时间)、sys(内核时间)

②内存,测RES(常驻内存)、SHR(共享内存)、%CPU、%MEM、CODE(代码段)、DATA(数据段)

1.4 测试项说明

real time、user time、sys time系统帮助文档解释如下:

real时钟时间,程序从开始至结束总时间,期间其它进程所耗时间片及进程被阻塞时间包含在内;user和sys分别为用户态及内核态所耗CPU时间,期间其它进程所耗时间片及阻塞时间不包含在内。

SHR包括程序代码段、共享库代码段、nmap文件映射、shmget申请的共享内存等。RES (resident memory usage)常驻内存,为进程运行时所使用物理内存总和。

为保证获得结论的可靠性,本文求得user、sys、RES、SHR均值后,分别取user+sys及RES-SHR结果作为对比依据。

2. 评测步骤

打开一终端,运行top命令,单击f后对top实时显示结果进行配置,配置显示项如下:

2.1 ffmpeg测试用例

用GNU gcc与Nano gcc分别编译ffmpeg-2.5.tar.bz2,分别产生elf可执行文件GNU ffmpeg 与Nano ffmpeg。

打开另一终端,运行可执行文件GNU ffmpeg将mp4格式720p测试片转换为flv格式,命令如下:

root@lyl:/home/lyl# time /usr/local/ffmpeg/bin/ffmpeg -i "./720p.mp4" -y -ab 32 -ar 22050 -qscale 10 -s 1280*720 -r 30 ./out.flv

运行10秒后,top终端显示内存相关测试项如下图:

转换完毕,显示时间相关测试项如下图:

相关文档
最新文档