我正在尝试测量程序需要完成的时间,当我在同一时间启动它8次时。停止时间并用bash启动几个程序
现在我真的很想写一个bash或者是用不同的参数多次启动程序并测量时间,直到所有这些完成。 我想我会在最后简单地使用&
8次开始我的程序,但是我不知道如何知道他们何时停止。
我正在尝试测量程序需要完成的时间,当我在同一时间启动它8次时。停止时间并用bash启动几个程序
现在我真的很想写一个bash或者是用不同的参数多次启动程序并测量时间,直到所有这些完成。 我想我会在最后简单地使用&
8次开始我的程序,但是我不知道如何知道他们何时停止。
使用jobs
看到什么仍然在运行,如果需要8,你可以做
if jobs | wc -l < 8 then command &
不工作的代码,但你的想法
可以使用time
命令来衡量的时间消耗一个程序,所以也许像
#!/bin/bash
time yourprogram withoneargument
time yourprogram with three arguments
...etc
干杯,
您可以使用wait
等待后台作业完成。
#!/bin/sh
program &
program &
wait
将等到program
的两个实例退出。
Bystrup先生提供了time
命令,该命令将执行您的程序。 Politowski先生和用户2814958提供&
运营商,该运营商将在后台运行程序,允许您同时启动它们。如果将这些结合在一起,那么除了从time
输出的不同命令的输出将混乱以外,您很可能会发现哪些输出与哪个命令相关。为了解决这个问题
一种方式是分流输出到不同的文件:
/usr/bin/time program1 2>/tmp/program1.time &
/usr/bin/time program2 2>/tmp/program2.time &
请注意,我重定向标准错误(文件描述符2)进入文件; time
将其输出写入标准错误而不是标准输出。还请注意我使用time
的完整路径。一些shell有一个内置的time
命令,其行为有所不同,例如将输出直接写入终端而不是标准错误。