アプリケーションの時間測定

アプリケーションの時間測定は、パフォーマンス測定の 1 つの目安となります。 time コマンドを使用して、プログラムのパフォーマンス情報が得られます。次の点を考慮して行ってください。

実行プログラムの名前を指定して、time コマンドを使用すると、次の情報が得られます。

次の時間測定の例では、サンプル・プログラムは、次のような行を表示します。

Average of all the numbers is:    4368488960.000000

Bourne* シェルを使用して、次のプログラム時間測定を行うと、合計 CPU 実時間が 1.19 秒 (ユーザ・プログラムの CPU 実時間 0.61 秒とシステムの CPU 実時間 0.58 秒の合計)、経過時間が 2.46 秒であることがレポートされます。

$ time a.out

Average of all the numbers is:
  4368488960.000000


real    0m2.46s


user    0m0.61s


sys     0m0.58s

C シェルを使用すると、合計 CPU 実時間が 1.19 秒 (ユーザ・プログラムの CPU 実時間 0.61 秒とシステムの CPU 実時間 0.58 秒の合計) 、経過時間が 4 秒 (0:04) 、CPU 使用時間が 28% であることがレポートされます。

% time a.out


Average of all the numbers is:   4368488960.000000

0.61u 0.58s 0:04 28% 78+424k 9+5io 0pf+0w

Bash シェルを使用すると、合計 CPU 実時間が 1.19 秒 (ユーザ・プログラムの CPU 実時間 0.61 秒とシステムの CPU 実時間 0.58 秒の合計) 、経過時間が 2.46 秒であることがレポートされます。

[user@system user]$ time ./a.out


Average of all the numbers is:   4368488960.000000


elapsed  0m2.46s


user     0m0.61s


sys      0m0.58s

システム時間が大きい場合は、I/O に多くの時間がかかっている可能性があります。この場合、調査する必要があるかもしれません。

プログラムが多くのテキストを表示する場合は、time コマンドラインでプログラムからの出力をリダイレクトできます。プログラムの出力をリダイレクトすると、画面 I/O が減少するため、レポートされる時間が変わります。

詳細は、「time(1)」を参照してください。

time コマンドに加えて、実行時間を測定するためのルーチンを呼び出すようにプログラムを変更してみてください。例えば、SECNDSDCLOCKCPU_TIMESYSTEM_CLOCKTIME および DATE_AND_TIME などのインテル® Fortran 組込みプロシージャを使用できます。 詳細は、『Intel® Fortran Language Reference』 (英語) の「Intrinsic Procedures」を参照してください。