ターミナルコマンドで実行されるアプリケーションの開始時刻を指定する

ターミナルコマンドで実行されるアプリケーションの開始時刻を指定する

特定のアプリケーションが完全に実行されるのにかかる時間を確認したいと思います。

特定のコマンドを使用して端末を介してアプリケーションを起動する方法はありますか?

ベストアンサー1

「完全リリース」の標準定義はありません。定義を考えると、それを検出する方法があるかもしれないしないかもしれません。

「完全起動」の定義が「アプリケーションがアイドル状態になるのを待ってからユーザー入力を待ちます」の場合は、対応するシステムコールを追跡して、ユーザー入力の読み取りを開始するのにかかる時間を確認できます。

strace -o myapp.strace -tt myapp

アプリケーションの起動が完了したら、トレースファイルを確認myapp.straceし、アプリケーションがユーザー入力を待っている行を見つけます。たとえば、次の例でselect私が示す呼び出しは、アプリケーションが別のタスクを実行するためにユーザー入力を待機するポイントです。次の行は、アプリケーションで発生する状況に対応しています。

01:07:53.975957 execve("/usr/bin/xterm", ["xterm"], [/* 83 vars */]) = 0
01:07:54.319288 select(5, [3 4], [], NULL, NULL) = 1 (in [3])
01:07:57.129481 recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\10\4\344\1\343q\257

一部のアプリケーションは決してアイドル状態ではなく、永久にポーリング状態を維持します。その後、アプリケーションが「完全に起動する」時期を決定するために自分で判断する必要があります。

一部のアプリケーションは、特定のファイルをロードしたり、事前定義された特定の起動操作を実行したりすると、ユーザー入力に応答し始めることがあります。 「フルスタート」の正式な定義はないので、「フルスタート」に対応する項目を選択することはユーザーの役割です。

「フルブート」を「GUIウィンドウ表示」として計算すると、次のことができます。xtoolwait、アプリケーションを起動し、ウィンドウが表示されるのを待ってから終了します。ウィンドウが完全に安定した方法でアプリケーションに関連付けられていないため、他のアプリケーションが同時に新しいウィンドウを表示すると、誤った肯定を返す可能性があります。

time xtoolwait xterm

おすすめ記事