在Linux上进行基准测试程序

3

为了完成一个任务,我们需要使用不同的优化和参数来测试我们的实现。在Linux命令行上,有没有一种可行的方法来对小程序进行基准测试(我知道可以用time),并输出CSV或类似的时间数据?输出结果可能如下所示:

Implementation      Time     
A                    23s
B with -O3 2Threads  15s 
B with -O3 4Threads  10s 

我相信我曾经在一些教授的幻灯片上看到过类似的东西,但我无法记起是谁或何时...

1个回答

6
为什么不在bash脚本中使用time命令,例如: time command
#!/bin/bash

NPROG=`cat proglist | wc -l`
for i in `seq 1 ${NPROG}`
do
    PROG=`sed -n "${i}p" proglist`
    ARG=`sed -n "${i}p" arglist`
    TIME=`{ time ${PROG} ${ARG}; } 2>&1 | grep real | awk '{print $2}'`
    echo "${TIME} ${PROG} ${ARG}"
done

其中proglist是包含要执行的程序的文本文件

A
B
B

arglist 则是一个包含参数的文本文件,类似于:

-a 1 -b 2
-f "foo"
-f "bar"

脚本的输出结果将会是这样的:
 0m32.000s A -a 1 -b 2
 1m12.000s B -f "foo"
 5m38.000s B -f "bar"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接