ZGCC性能评估
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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终端显示内存相关测试项如下图:
转换完毕,显示时间相关测试项如下图:
记录各测试项并重复运行10次得表1(a)中数据。
次数real user sys RES SHR %CPU %MEM CODE DATA
1 19.44829.784 0.35644448 1948 157.8 1.1 204 112744
2 19.33629.788 0.34444452 1948 163.1 1.1 204 112744
3 19.49929.68
4 0.446296 1948 154.6 1.1 204 112744
4 19.58129.796 0.31644416 1948 160.1 1.1 204 112744
5 19.5129.832 0.27644452 1948 153.1 1.1 204 112744
6 19.44929.784 0.33644444 1948 158.3 1.1 204 112744
7 19.35129.824 0.29244400 1948 156.1 1.1 204 112744
8 19.4129.804 0.31244388 1948 161.7 1.1 204 112744
9 19.43129.82 0.2846396 1948 165.1 1.1 204 112748
10 19.40529.792 0.32446324 1948 156.1 1.1 204 112744
改用可执行文件Nano ffmpeg,同样操作重复运行10次得表1(b)中数据。
次数real user sys RES SHR %CPU %MEM CODE DATA
1 19.671 29.57
2 0.348 44552 2080 157.
3 1.1 200 112756
2 19.386 29.74 0.356 44504 2080 160.9 1.1 200 112756
3 19.139 29.6 0.316 46492 2080 157.
4 1.1 200 112760
4 19.174 29.576 0.328 44752 2080 168.0 1.1 200 112756
5 19.602 29.664 0.268 44560 2080 159.2 1.1 200 112756
6 19.418 29.652 0.288 44556 2080 159.9 1.1 200 112756
7 19.457 29.6 0.296 44752 2080 162.8 1.1 200 112756
8 19.175 29.652 0.272 44512 2080 160.8 1.1 200 112756
9 19.287 29.644 0.308 46512 2080 157.4 1.1 200 112752
10 19.315 29.612 0.288 46520 2080 158.4 1.1 200 112756
2.2 mplayer测试用例
用GNU gcc与Nano gcc分别编译MPlayer-1.0rc2.tar.bz2,分别产生elf可执行文件GNU mplayer与Nano mplayer。
打开另一终端,运行可执行文件GNU mplayer播放720p测试短片,命令如下:
root@lyl:/home/lyl# time /usr/local/mplayer/bin/mplayer 720p.mp4
运行10秒后,top终端显示内存相关测试项如下图:
播放完毕,显示时间相关测试项如下图:
记录各测试项并重复运行10次得表2(a)中数据。
表2(a) GNU gcc-mplayer:
次数real user sys RES SHR %CPU %MEM CODE DATA
1 53.63521.536 0.182**** **** 36.0 0.5 7940 16428
2 53.65321.56 0.184 22404 7064 35.7 0.5 7940 16428
3 53.65321.496 0.19622408 706
4 36.7 0.
5 7940 16428
4 53.63721.488 0.21222404 7064 38.1 0.
5 7940 16428
5 53.63221.488 0.21222568 7064 34.8 0.5 7940 16428
6 53.6421.476 0.21622416 7064 37.8 0.5 7940 16424
7 53.60921.456 0.25222568 7064 36.5 0.5 7940 16428
8 53.64821.46 0.25222568 7064 36.8 0.5 7940 16428
9 53.66521.48 0.22422404 7064 35.4 0.5 7940 16428
10 53.6621.492 0.21622408 7064 37.5 0.5 7940 16428
改用可执行文件Nano mplayer,同样操作重复运行10次得表2(b)中数据。
次数real user sys RES SHR %CPU %MEM CODE DATA
1 53.669 21.096 0.228 22536 7196 37.8 0.6 8148 16420
2 53.669 21.128 0.176 22692 7196 36.4 0.6 8148 16424
3 53.626 21.112 0.188 22536 7196 36.7 0.5 8148 16424
4 53.683 21.124 0.212 22536 7196 38.1 0.
5 8148 16424
5 53.651 21.08 0.23
6 22696 7196 36.4 0.6 8148 16424
6 53.666 21.044 0.252 22696 7196 35.5 0.6 8148 16424
7 53.63 21.076 0.24 22696 7196 37.8 0.6 8148 16424
8 53.635 21.028 0.264 22696 7196 34.8 0.6 8148 16420
9 53.626 21.072 0.22 22692 7196 37.5 0.6 8148 16424
10 53.636 21.032 0.24 22448 7196 34.5 0.5 8148 16424 3. 数据处理
3.1 ffmpeg数据
对表1(a) GNU gcc-ffmpeg及表1(b) Nano gcc-ffmpeg中数据取平均值得表1(c)。
3.2 mplayer数据
对表2(a) GNU gcc-mplayer及表2(b) Nano gcc-mplayer中数据取平均值得表2(c)。
表2(c):
表2(d):
三. 评测结论。