web-dev-qa-db-ja.com

並行して実行される複合コマンドの時間を計るにはどうすればよいですか?

すべてではありませんがほとんどのコマンドが並行して実行されたときに、複合コマンドの時間を計るにはどうすればよいですか?

たとえば、次のコマンドです。

comd1 ; comd2 & comd3 & comd4 & comd5 &

私は試した

time (comd1…)

しかし、出力から、comd1からcomd2は通常、単独で実行された場合に実行を完了するのにそれほど速くないため、comd5のみがタイミングを合わせられたと推測できます。

6

waitを追加して、すべてのバックグラウンドプロセスを待つことができます。

例:

$ time (sleep 1; sleep 2 & sleep 4 & wait)
real    0m5.007s
user    0m0.004s
sys     0m0.005s

$ time (sleep 1; sleep 6 & sleep 4 & wait)
real    0m7.011s
user    0m0.005s
sys     0m0.003s
5
rudimeier