LMbench官网 => https://lmbench.sourceforge.net/man/
下载源码,编译得到的Benchmark是由很多文件组成的,上面的链接中官方给出了每个组件的各参数的含义,可以对照着修改使用,以达到测试在某个组件上表现的作用。
以bw_mem
为例:
名字
bw_mem - 时间内存带宽
格式
bw_mem_cp [ -P ] [ -W ] [ -N ] size rd|wr|rdwr|cp|fwr|frd|bzero|bcopy [align]
描述
bw_mem分配两倍的指定内存量,将其归零,然后将前半部分的复制时间定时到后半部分。结果以每秒移动的兆字节为单位报告。
大小规范可能以“k”或“m”结尾,表示千字节 (* 1024) 或兆字节 (* 1024 * 1024)。
输出
输出格式为 CB“%0.2f %.2f\n”,兆字节,megabytes_per_second,即
8.00 25.33
bw_mem中有九种不同的内存基准测试。 它们各自测量的读取、写入或复制数据的方法略有不同。
-
rd
测量将数据读入处理器的时间。它计算整数值数组的总和。它访问每四个单词。 wr
测量将数据写入内存的时间。它为整数值数组的每个内存分配一个常量值。它访问每四个单词。 -
rdwr
测量将数据读入内存,然后将数据写入同一内存位置的时间。对于数组中的每个元素,它会在为元素分配新(常量)值之前将当前值添加到运行总和中。它访问每四个单词。 -
cp
测量将数据从一个位置复制到另一个位置的时间。它执行数组复制:dest[i] = source[i]。它访问每四个单词。 -
frd
测量将数据读入处理器的时间。它计算整数值数组的总和。 -
fwr
测量将数据写入内存的时间。它为整数值数组的每个内存分配一个常量值。 -
fcp
测量将数据从一个位置复制到另一个位置的时间。它执行数组复制:dest[i] = source[i]。 -
bzero
测量系统将内存归零的速度。 -
bcopy
衡量系统复制数据的速度。 -
Memory Utilization
此基准测试最多可以移动请求内存的三倍。Bcopy 将使用 2-3倍的内存带宽:从源代码读取一次,写入描述。写入通常会导致缓存行读取,然后在稍后的某个时间点写回缓存行。如果处理器体系结构实现了“加载缓存行”和“存储缓存行”指令(以及“getcachelinesize”),则内存利用率可能会降低1/3。