特定のコマンドの時間を測定する方法は?

特定のコマンドの時間を測定する方法は?

(TimeThis.exeと同等のLinux)

それは次のとおりです。

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.

答え1

time代わりにそうしてみてくださいtimethis

通常、当時はシェル組み込みバージョンがあることに注意してください。そして異なる形式で結果を提供するバイナリバージョン:

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

そして

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

"timethis"プロシージャとは異なり、3つの値を返します。これは次のように分類されます。コマンドラインで「時間」を使用するときの「システム時間」とは何ですか?、しかし簡単に言うと:本物「壁時計時間」を意味し、ユーザーそしてシステム汎用コードとシステムコールで区切られたCPUクロック時間を表示します。

答え2

time組み込みシェルの代わりに実行可能ファイルを使用すると、出力形式と値を指定できます。たとえば、コマンド名と引数で実際の経過時間を取得します。

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

参考にしてください〜しなければならないそれtime以外の場合は、組み込みシェルがデフォルトとして使用されます。組み込みユーティリティの代わりにまたはをcommand time使用してユーティリティを実行することもできます。\time

答え3

@galois:さまざまなシェルには、パス内のすべてよりも優先される「組み込み」コマンドがあります。これは一般に有利である。組み込み関数はより速く実行される傾向があり(外部ファイルが呼び出されないため)、通常は望ましい結果を提供します(つまり、時間コマンドの場合は通常どのバージョンを使用しているのか気にしません。)「--format」フラグを使用したい場合)。

したがって、特殊文字(例:/)を持たない「時間」は、PATHの外観に関係なく、最終的に組み込み機能を実行するパスのように見えます。

シェルが外部時間コマンドを使用するように強制するには、パスを指定する必要があります。

関連情報