シェル初期化のすべてのステップを追跡し、時間を測定します

シェル初期化のすべてのステップを追跡し、時間を測定します

次のコマンドは、完全なステップ・トレースを提供します。

zsh -i -c -x exit > trace 2>&1

それも捉えてほしい、各特定のステップの横に(例:最初の列)ステップにかかった時間。

Zshはこれを行う簡単な方法を提供しますか?

答え1

非常に最近のバージョンでは、簡単に近い情報を得ることができます。つまり、各ステップのタイムスタンプです。 ~から出荷書類ビーチ-x:

出力の前には、$ PS4の値が次の形式で表示されます。急速な拡張

あなたは置くことができますタイムスタンプ追跡プレフィックスに。%.zsh ≥ 5.6のナノ秒精度を提供し、5.0.6から5.5.xの間のマイクロ秒精度のみを提供します。以前のバージョンにはなかったし、%D2番目の精度しか得られなかったようです。

PS4='+%D{%s.%9.}:%N:%i>' zsh -x …

その後、トレースを後処理して連続タイムスタンプ間の差を計算できます。

<trace awk -F: '{printf "+%.09f", $1 - t; t=$1; $1=""; print}'

関連情報