计算Linux中几个"时间"命令的平均值

Mai*_*tor 4 language-agnostic linux statistics benchmarking profiling

我正在使用"time"命令在Linux上分析程序.问题是它的输出在统计上不是很相关,因为它只运行一次程序.是否有工具或方法可以获得平均几次"时间"运行?可能与偏差等统计信息一起?

bob*_*mcn 6

这是我写的一个脚本,用来做你想要的东西.它运行提供的命令10次,将实际,用户CPU和系统CPU时间记录到文件中,并在每个命令输出后回显tham.然后它使用awk来提供文件中3列中每一列的平均值,但是(还)不包括标准偏差.

#!/bin/bash

rm -f /tmp/mtime.$$

for x in {1..10}
do
  /usr/bin/time -f "real %e user %U sys %S" -a -o /tmp/mtime.$$ $@
  tail -1 /tmp/mtime.$$
done

awk '{ et += $2; ut += $4; st += $6; count++ } END {  printf "Average:\nreal %.3f user %.3f sys %.3f\n", et/count, ut/count, st/count }' /tmp/mtime.$$
Run Code Online (Sandbox Code Playgroud)


Jay*_*van 6

使用超精细

\n

例如:

\n
hyperfine \'sleep 0.3\'\n
Run Code Online (Sandbox Code Playgroud)\n

sleep 0.3将多次运行该命令,然后输出如下内容:

\n
hyperfine \'sleep 0.3\'\nBenchmark #1: sleep 0.3\n  Time (mean \xc2\xb1 \xcf\x83):     306.7 ms \xc2\xb1   3.0 ms    [User: 2.8 ms, System: 3.5 ms]\n  Range (min \xe2\x80\xa6 max):   301.0 ms \xe2\x80\xa6 310.9 ms    10 runs\n
Run Code Online (Sandbox Code Playgroud)\n