2

unix time コマンドを使用して、Java プログラムの実行時間を記録しています。

プログラムが実行を開始して最初に行うことは、ユーザーにファイル パスの入力を求めることです。

これを入力してリターンを押すのにかかった時間は、このコマンドが返す時間統計のいずれかに含まれていますか? time コマンドの出力は次の形式です。

.#u #.#s #:#.# #.#% #+#k #+#io #pf+#w

ここで # は整数です

ありがとうございました

4

1 に答える 1

3

はい、入力を提供するのにかかる時間はリアルタイムの一部です (出力の 3 番目のエントリ)。

簡単なデモ:

$ time(sleep 5 ; echo hi | read)

real      0m5.005s
user      0m0.000s
sys       0m0.004s

ここで、標準出力に出力してecho hi読み取ります。この書き込みと読み取りが発生する前に、5 秒の遅延を追加しました。そして、私はすべての時間を計りました。hiread

ご覧のとおり、リアルタイムは約 5 秒です。これは、readコマンドが入力を読み取るのにかかった時間を考慮に入れていることを意味します。

ユーザー時間とは、CPU がループや条件などのプログラム内の命令を実行するのにかかる時間です。
sys time は、CPU がシステム コールを実行するのにかかった時間です。readこの例では、4 ミリ秒の sys 時間が表示されます。これは、そのコマンドにwriteなどの sys 呼び出しが多数含まれているためです。

于 2010-12-09T03:51:56.133 に答える