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

アプリケーションのパフォーマンスに関する情報収集は、アプリケーションの時間測定から開始することができます。パフォーマンス解析ツールを使用することで、より高度で役立つデータを収集できます。

アプリケーションの時間測定における考慮事項

アプリケーションの時間測定は、パフォーマンス測定の 1 つの目安となります。次の点を考慮して行ってください。

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

アプリケーションの時間を測定する場合、.BAT ファイルで TIME コマンド (または関数の時間測定プロファイリング・オプション) を使用します。プログラム内からルーチンを呼び出すようにプログラムを変更し、実行時間を測定することもできます (条件付きでコンパイルされる行を使用)。

次に例を示します。

アプリケーションを実際に使用するシステムとできるだけ同じシステム上で、詳細なパフォーマンス解析を行ってください。

時間測定のサンプル

次のプログラム・テンプレートは、.BAT ファイルにより実行でき、プログラム実行の前後に TIME コマンドを発行することで、プログラム全体の実行におけるウォールクロック概算時間を測定することができます。Fortran の組み込み関数 CPU_TIME は、プログラムの指定した箇所で使用することで、測定開始時と終了時から CPU 時間を収集することができます。

REAL time_begin, time_end
  ...
  CALL CPU_TIME ( time_begin )
  !
  !task to be timed
  !
  CALL CPU_TIME ( time_end )
  PRINT *, 'Time of operation was ', &
time_end - time_begin, ' seconds'

Linux* における考慮事項

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

Bourne* シェルの例

Average of all the numbers is:    4368488960.000000

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

Bourne* シェルの例

$ 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% であることがレポートされます。

C シェルの例

% 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 秒であることがレポートされます。

bash シェルの例

[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 などのインテル組み込みプロシージャーを使用できます。


このヘルプトピックについてのフィードバックを送信

© 1996-2010 Intel Corporation. 無断での引用、転載を禁じます。