zshでコマンドの実行時間をミリ秒単位で取得するには?

zshでコマンドの実行時間をミリ秒単位で取得するには?

唯一のtime印刷コマンドは2番目の実行です。

IPythonの強力な魔法コマンドのような解決timeit策があれば良いでしょう。

答え1

zsh は変数をtime使用してTIMEFMT書式設定を制御します。基本的に、つまり%J %U user %S system %P cpu %*E total、次のような結果を生成します。

$ time sleep 2
sleep 2 0.00s user 0.00s system 0% cpu 2.002 total

これするミリ秒の精度を生成します(少なくともtotalTIMEFMT

見てマニュアルページ可能な形式について学びます。私は以下を使用しています~/.zshrc

TIMEFMT=$'\n================\nCPU\t%P\nuser\t%*U\nsystem\t%*S\ntotal\t%*E'

次の結果が生成されます。

$ time sleep 2 

================
CPU     0%
user    0.003
system  0.000
total   2.006

答え2

デフォルトでは、ipythontimeitマジックコマンドはステートメントの複数の実行に関する統計レポートを出力します。 zsh 予約語はtimeコマンドを一度だけ実行します。

(組み込みコマンドまたは関数ではなく)外部コマンドの実行時間の測定にのみ興味がある場合は、次のことを使用できます。スーパーパイン。コマンドを繰り返していくつかの統計を印刷するプログラムです。

関連情報