Unixbench是一款用于linux系統的系統性能測試工具。本文是對Unixbench入口腳本Run進行分析。
此處由于阿裡雲對markdown文法和latex文法支援的不全,是以附上segmentfault上的文章連結。
https://segmentfault.com/a/1190000023799317一、執行調用關系

二、單測試項結果分析(結果處理為Run中的combinePassResults函數)
- 指定單測試項運作遍數(run pass num),通過變量testParams中的repeat參數指定:
| 命名 | 次數 | 說明 |
| ------ | ---- | ---- |
| short | 3 | 預設 |
| long | 10 | 最大 |
| single | 1 | 最小 |
- 先根據每一遍的結果進行排序,去掉最差的1/3的結果,可通過log檔案檢視:dump score為舍去的結果,Count score為參與算分的結果。
- 每一項原始結果,形如:
其中x為分數,y為時間機關,若y為0則x代表比率,z為标簽符号。COUNT|x|y|z
- 當y為時間機關時的計算公式:
$$
\LARGE{score=e^{(\sum\limits_{i=1}^{iterations}\log(\frac {count\cdot timebase}{time}))/iterations}}
$$
- score: 單項分數
- iterations:剩餘有效結果的個數
- count:每個有效結果的值
- timebase:時間基本機關
- time:運作的總時間
當y為0時的計算公式:
\LARGE{score=e^{(\sum\limits_{i=1}^{iterations}\log(count))/iterations}}
三、總分結果分析(結果處理為Run中的indexResults函數)
- index值計算公式:
\LARGE index=\frac{score * 10}{baseline}
- score:算出的單項分數
- baseline:記錄在pgms/index.base中的基準值
- 總分計算公式:
\Large SUM\_SCORE=e^{(\sum\limits_{i=1}^{tests\_num}log(\frac{score}{baseline}))/test\_num}*10
- test_num:一個類型中的測試項的個數,可見Run中的testCats變量