Unixbench是一款用于linux零碎的零碎性能测试工具。本文次要剖析了Unixbench运行的入口脚本Run。
一、执行调用关系
二、单测试项后果剖析(后果解决为Run中的combinePassResults函数)
指定单测试项运行遍数(run pass num),通过变量testParams中的repeat参数指定:
命名 次数 阐明 short 3 默认 long 10 最大 single 1 最小 - 先依据每一遍的后果进行排序,去掉最差的1/3的后果,可通过log文件查看:dump score为舍去的后果,Count score为参加算分的后果。
- 每一项原始后果,形如:
COUNT|x|y|z
其中x为分数,y为工夫单位,若y为0则x代表比率,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变量。