轉自:https://www.cnblogs.com/chenshengkai/p/12761467.html
一、安裝
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函數中的 preChecks();註釋掉,因爲其中有 system("make all");
二、測試介紹
================================
UnixBench源於1995 年,基線系統是“George”,一個工作站:SPARCstation 20‐61,128MB RAM,Solaris2.3,此係統的指數值被設定爲10,所以,如果一個系統的最後結果分數爲520,意思是指此係統比基線系統運行快52 倍。
UnixBench也支持多CPU系統的測試,默認的行爲是測試兩次,第一次是一個進程的測試,第二次是N份測試,N等於CPU個數。這樣的設計是爲了以下目標:
測試系統的單任務性能
測試系統的多任務性能
測試系統並行處理的能力
UnixBench一個基於系統的基準測試工具,不單純是CPU 內存 或者磁盤測試工具。測試結果不僅僅取決於硬件,也取決於系統、開發庫、甚至是編譯器。
Dhrystone測試
測試聚焦在字符串處理,沒有浮點運算操作。這個測試用於測試鏈接器編譯、代碼優化、內存緩存、等待狀態、整數數據類型等,硬件和軟件設計都會非常大的影響測試結果。
Whetstone 測試
這項測試項目用於測試浮點運算效率和速度。這項測試項目包含若干個科學計算的典型性能模塊,包含大量的C語言函數,sin cos sqrt exp和日誌以及使用整數和浮點的數學操作。包含數組訪問、條件分支和過程調用。
Execl Throughput測試
(execl 吞吐,這裏的execl是類unix系統非常重要的函數,非辦公軟件的excel)
這項測試測試每秒execl函數調用次數。execl是 exec函數家族的一部分,使用新的圖形處理代替當前的圖形處理。有許多命令和前端的execve()函數命令非常相似。
File Copy測試
這項測試衡量文件數據從一個文件被傳輸到另外一個,使用大量的緩存。包括文件的讀、寫、複製測試,測試指標是一定時間內(默認是10秒)被重寫、讀、複製的字符數量。
Pipe Throughput(管道吞吐)測試
pipe是簡單的進程之間的通訊。管道吞吐測試是測試在一秒鐘一個進程寫512比特到一個管道中並且讀回來的次數。管道吞吐測試和實際編程有差距。
Pipe-based Context Switching (基於管道的上下文交互)測試
這項測試衡量兩個進程通過管道交換和整數倍的增加吞吐的次數。基於管道的上下文切換和真實程序很類似。測試程序產生一個雙向管道通訊的子線程。
Process Creation(進程創建)測試
這項測試衡量一個進程能產生子線程並且立即退出的次數。新進程真的創建進程阻塞和內存佔用,所以測試程序直接使用內存帶寬。這項測試用於典型的比較大量的操作系統進程創建操作。
Shell Scripts測試
shell腳本測試用於衡量在一分鐘內,一個進程可以啓動並停止shell腳本的次數,通常會測試1,2, 3, 4, 8 個shell腳本的共同拷貝,shell腳本是一套轉化數據文件的腳本。
System Call Overhead (系統調用消耗)測試
這項測試衡量進入和離開系統內核的消耗,例如,系統調用的消耗。程序簡單重複的執行getpid調用(返回調用的進程id)。消耗的指標是調用進入和離開內核的執行時間。
================================
三、Run用法
Run [ -q | -v ] [-i <n> ] [-c <n> [-c <n> ...]] [test ...]
選項說明:
-q |
不顯示測試過程 |
-v |
顯示測試過程 |
-i <count> |
執行次數,最低3次,默認10 |
-c <n> |
每次測試並行n個copies(並行任務) |
備註:-c選項可以用來執行多次,如:
Run -c 1 -c 4表示執行兩次,第一次單個copies,第二次4個copies的測試任務。
對於多cpu系統的性能測試策略,需要統計單任務,多任務及其並行的性能增強。
以4個cpu的PC爲例,需要測試兩次,4個CPU就是要並行執行4個copies,
Run -q -c 1 -c 4
測試結果單個並行的任務的得分爲171.3,4個並行任務的得分爲395.7。對比測試時需要關注這個值。