unixbench
1.下載
https://github.com/kdlucas/byte-unixbench/archive/v5.1.3.tar.gz
2.修改Makefile 交叉編譯
#CC=gcc
CC = arm-linux-gnueabihf-gcc
3.make
4.修改Run
將main函數(shù)中的preChecks();注釋掉,因為其中有system("make all");
5.將編譯過的整個byte-unixbench-5.1.3拷貝到開發(fā)板上。
已經(jīng)手動編譯過了,此時Run是在小板子上。
http://bbs.eeworld.com.cn/thread-503566-1-1.html
測試介紹
================================
UnixBench源于1995 年,基線系統(tǒng)是“George”,一個工作站:SPARCstation 20‐61,128MB
RAM,Solaris2.3,此系統(tǒng)的指數(shù)值被設(shè)定為10,所以,如果一個系統(tǒng)的最后結(jié)果分數(shù)為520,意思是指此系統(tǒng)比基線系統(tǒng)運行快52 倍。
UnixBench也支持多CPU系統(tǒng)的測試,默認的行為是測試兩次,第一次是一個進程的測試,第二次是N份測試,N等于CPU個數(shù)。這樣的設(shè)計是為了以下目標(biāo):
測試系統(tǒng)的單任務(wù)性能
測試系統(tǒng)的多任務(wù)性能
測試系統(tǒng)并行處理的能力
UnixBench一個基于系統(tǒng)的基準(zhǔn)測試工具,不單純是CPU 內(nèi)存 或者磁盤測試工具。測試結(jié)果不僅僅取決于硬件,也取決于系統(tǒng)、開發(fā)庫、甚至是編譯器。
Dhrystone測試
測試聚焦在字符串處理,沒有浮點運算操作。這個測試用于測試鏈接器編譯、代碼優(yōu)化、內(nèi)存緩存、等待狀態(tài)、整數(shù)數(shù)據(jù)類型等,硬件和軟件設(shè)計都會非常大的影響測試結(jié)果。
Whetstone 測試
這項測試項目用于測試浮點運算效率和速度。這項測試項目包含若干個科學(xué)計算的典型性能模塊,包含大量的C語言函數(shù),sin cos sqrt exp和日志以及使用整數(shù)和浮點的數(shù)學(xué)操作。包含數(shù)組訪問、條件分支和過程調(diào)用。
Execl Throughput測試
(execl 吞吐,這里的execl是類unix系統(tǒng)非常重要的函數(shù),非辦公軟件的excel)
這項測試測試每秒execl函數(shù)調(diào)用次數(shù)。execl是 exec函數(shù)家族的一部分,使用新的圖形處理代替當(dāng)前的圖形處理。有許多命令和前端的execve()函數(shù)命令非常相似。
File Copy測試
這項測試衡量文件數(shù)據(jù)從一個文件被傳輸?shù)搅硗庖粋€,使用大量的緩存。包括文件的讀、寫、復(fù)制測試,測試指標(biāo)是一定時間內(nèi)(默認是10秒)被重寫、讀、復(fù)制的字符數(shù)量。
Pipe Throughput(管道吞吐)測試
pipe是簡單的進程之間的通訊。管道吞吐測試是測試在一秒鐘一個進程寫512比特到一個管道中并且讀回來的次數(shù)。管道吞吐測試和實際編程有差距。
Pipe-based Context Switching (基于管道的上下文交互)測試
這項測試衡量兩個進程通過管道交換和整數(shù)倍的增加吞吐的次數(shù)。基于管道的上下文切換和真實程序很類似。測試程序產(chǎn)生一個雙向管道通訊的子線程。
Process Creation(進程創(chuàng)建)測試
這項測試衡量一個進程能產(chǎn)生子線程并且立即退出的次數(shù)。新進程真的創(chuàng)建進程阻塞和內(nèi)存占用,所以測試程序直接使用內(nèi)存帶寬。這項測試用于典型的比較大量的操作系統(tǒng)進程創(chuàng)建操作。
Shell Scripts測試
shell腳本測試用于衡量在一分鐘內(nèi),一個進程可以啟動并停止shell腳本的次數(shù),通常會測試1,2, 3, 4, 8 個shell腳本的共同拷貝,shell腳本是一套轉(zhuǎn)化數(shù)據(jù)文件的腳本。
System Call Overhead (系統(tǒng)調(diào)用消耗)測試
這項測試衡量進入和離開系統(tǒng)內(nèi)核的消耗,例如,系統(tǒng)調(diào)用的消耗。程序簡單重復(fù)的執(zhí)行g(shù)etpid調(diào)用(返回調(diào)用的進程id)。消耗的指標(biāo)是調(diào)用進入和離開內(nèi)核的執(zhí)行時間。
================================
測試方法
首先確保被測試系統(tǒng)干凈,沒有后臺大量占用資源的程序在運行。比較簡單的方法是燒寫一個新系統(tǒng),做簡單必要配置后,重啟,就是一個干凈的測試平臺。如果是對比測試,把能控制的因素都控制成相同。比如測試Raspberry
 2和3的時候,就可以使用同一張存儲卡,系統(tǒng)版本也要保持一致。
 把測試軟件傳到被測系統(tǒng)中,可以通過FTP等方法傳輸。
解壓縮tar.gz包:
tar -xvf unixbench-5.1.2.tar.gz
cd unixbench-5.1.2
復(fù)制代碼
如果是針對服務(wù)器等非圖形環(huán)境的測試,需要關(guān)掉圖形測試。
編輯文件Makefile
vim Makefile
復(fù)制代碼
注釋掉GRAPHIC_TESTS = defined這一行,也就是在這一行開頭加個“#”號。我這個版本是在第46行。
保存文件。
編譯
make clean
make all
復(fù)制代碼
如果沒有錯誤,就可以運行測試了
./Run
復(fù)制代碼
在Raspberry上測試一次的時間大約是半小時左右。測試完成后,結(jié)果會在屏幕上顯示出來,也可以在results目錄里找到保存測試結(jié)果和相關(guān)log。
文件USAGE里寫了更詳細的測試參數(shù),部分參數(shù)如下圖
如果是一般測試,使用沒有參數(shù)的默認設(shè)置就可以了,在多核系統(tǒng)上,軟件會測試單核性能和多核性能各1次。
為了嚴謹起見,這樣的測試應(yīng)該測試多次,然后分數(shù)取平均值。不過既然是非專業(yè)測試,通常測試幾次后發(fā)現(xiàn)分數(shù)比較穩(wěn)定后,取其中一次作代表就可以了。如果分數(shù)波動很大,那就需要找找原因了。
http://blog.sina.com.cn/s/blog_7695e9f40100yimf.html
unixbench5測試內(nèi)容包含了system、2d、3d、misc測試項。system測試系統(tǒng)的一些基本功能;2d測試2D圖形加速;3d測試3D加速;misc測試諸如字符,整型等測試。詳情見下面。
system:
dhry2reg Dhrystone 2 using register variables
whetstone-double Double-Precision Whetstone
syscall System Call Overhead
pipe Pipe Throughput
context1 Pipe-based Context Switching
spawn Process Creation
execl Execl Throughput
fstime-w File Write 1024 bufsize 2000 maxblocks
fstime-r File Read 1024 bufsize 2000 maxblocks
fstime File Copy 1024 bufsize 2000 maxblocks
fsbuffer-w File Write 256 bufsize 500 maxblocks
fsbuffer-r File Read 256 bufsize 500 maxblocks
fsbuffer File Copy 256 bufsize 500 maxblocks
fsdisk-w File Write 4096 bufsize 8000 maxblocks
fsdisk-r File Read 4096 bufsize 8000 maxblocks
fsdisk File Copy 4096 bufsize 8000 maxblocks
shell1 Shell Scripts (1 concurrent) (runs "looper 60 multi.sh 1")
shell8 Shell Scripts (8 concurrent) (runs "looper 60 multi.sh 8")
shell16 Shell Scripts (8 concurrent) (runs "looper 60 multi.sh 16")
2d:
2d-rects 2D graphics: rectangles
2d-lines 2D graphics: lines
2d-circle 2D graphics: circles
2d-ellipse 2D graphics: ellipses
2d-shapes 2D graphics: polygons
2d-aashapes 2D graphics: aa polygons
2d-polys 2D graphics: complex polygons
2d-text 2D graphics: text
2d-blit 2D graphics: images and blits
2d-window 2D graphics: windows
3d:
ubgears 3D graphics: gears
misc:
C C Compiler Throughput ("looper 60 $cCompiler cctest.c")
arithoh Arithoh (huh?)
short Arithmetic Test (short) (this is arith.c configured for
"short" variables; ditto for the ones below)
int Arithmetic Test (int)
long Arithmetic Test (long)
float Arithmetic Test (float)
double Arithmetic Test (double)
dc Dc: sqrt(2) to 99 decimal places (runs
"looper 30 dc < dc.dat", using your system's copy of "dc")
hanoi Recursion Test -- Tower of Hanoi
grep Grep for a string in a large file, using your system's
copy of "grep"
sysexec Exercise fork() and exec().
unixbench5包含system和graphic測試,如果你需要測試graphic,則需要修改Makefile,不要注釋掉"GRAPHIC_TESTS = defined,同時需要系統(tǒng)提供x11perf命令gl_glibs庫。
進入源包,執(zhí)行
make
◆ 執(zhí)行system測試方法:Run
◆ 執(zhí)行g(shù)raphic測試方法:Run graphics
◆ 執(zhí)行system,graphics測試方法:Run gindex
Run用法
Run [ -q | -v ] [-i <n> ] [-c <n> [-c <n> ...]] [test ...]
選項說明:
| 
 -q  | 
 不顯示測試過程  | 
| 
 -v  | 
 顯示測試過程  | 
| 
 -i <count>  | 
 執(zhí)行次數(shù),最低3次,默認10  | 
| 
 -c <n>  | 
 每次測試并行n個copies(并行任務(wù))  | 
備注:-c選項可以用來執(zhí)行多次,如:
Run -c 1 -c 4表示執(zhí)行兩次,第一次單個copies,第二次4個copies的測試任務(wù)。
對于多cpu系統(tǒng)的性能測試策略,需要統(tǒng)計單任務(wù),多任務(wù)及其并行的性能增強。
以4個cpu的PC為例,需要測試兩次,4個CPU就是要并行執(zhí)行4個copies,
Run -q -c 1 -c 4
測試結(jié)果單個并行的任務(wù)的得分為171.3,4個并行任務(wù)的得分為395.7。對比測試時需要關(guān)注這個值。
總結(jié)
                            
                        - 上一篇: java中判断字段真实长度(中文2个字符
 - 下一篇: C# winfrom listView