プログラムのパフォーマンスと資源の利用状況に関する基本的なデータを収集するには、time (1) コマンドを使用するか、または、csh で set time コマンドを発行するのがもっとも簡単な方法です。
time コマンドでプログラムを実行すると、プログラム終了時に時間情報行が出力されます。
demo% time myprog 答えは: 543.01 6.5u 17.1s 1:16 31% 11+21k 354+210io 135pf+0w demo% |
各欄の意味は次のとおりです。
ユーザー - システム - 時計時間 - 資源 - メモリー - 入出力 - ページング
6.5u 17.1s 1:16 31% 11+21k 354+210io 135pf+0w |
システム– このタスクのシステムコード中で約 17.1 秒
時計時間– 実行完了までに 1 分 16 秒
資源– このプログラムのために使用されたシステム資源は 31 %
メモリー– 共有プログラムメモリーは 11K バイト、プライベートデータメモリーは 21K バイト
入出力– 読み取りは 354 回、書き込みは 210 回
ページング– ページフォルトは 135 回、スワップアウトは 0 回
プログラムがマルチプロセッサ環境で並列に実行されたとき、結果の時間の解釈方法は異なります。/bin/time はユーザー時間を異なるスレッドで累積するので、実測時間だけが使用されます。
表示されるユーザー時間にはすべてのプロセッサ上で費やされた時間が含まれるので、かなり大きくなり、パフォーマンスの測定方法としては適していません。より適している測定は実時間、つまり、実測時間です。これは、並列化されたプログラムの正確な時間を得るには、ユーザーのプログラムだけに専念するシステム上で実行しなければならないということも意味します。