我正在time
执行一些命令。现在,为了对测量进行平均,我想运行并计时我的命令指定的次数,并获得具有计算平均值和标准差的结果。结果会是这样的:
avgtime -n 100 my_command
real 0m5.388s stdev 0m0.068s
user 0m5.380s stdev 0m0.067s
sys 0m0.004s stdev 0m0.000s
有没有 UNIX 工具可以做到这一点? GNU/Linux 有吗?
答案1
您可以尝试使用 timeit 模块,该模块在任何带有 Python 的系统中都可用:
$ python -m timeit "__import__('os').system('my command here')"
10 loops, best of 3: 591 msec per loop
答案2
答案3
它不完全是一个 UNIX 或 GNU/Linux 工具,但您可以非常轻松地使用右统计计算软件环境为了这。 (我不能不过,找到更适合您的任务的东西.)
编辑我怎么能怀疑呢,当然有一个基准包R
:rbenchmark
。它显然包装了system.time()
您也可以直接使用。 或者看看这个,一个简单的秒表功能对。 另请参阅“执行系统命令”@Rosetta 代码(或者不,它是system("command")
。)
编辑2我刚看到这个问题“测量脚本中的时间”在右侧的“相关”列中,也可以使用它,即取时间,执行 for 循环(N
次),再次取时间,计算时间跨度,除以N
。 (更简单的是,尝试time ( for-loop )
解析其输出,除以N
)。
答案4
还有两个选项(现在 debian 等都提供):
- 多次(在 github 上),如
multitime -q -n 10 sleep 1
(来自 https://superuser.com/a/1301756/129608) - Linux 性能(维基百科),如
perf stat -r 10 -B sleep 1
(来自https://superuser.com/a/1279724/129608)