前へ 上へ 次へ
前へ 上へ 次へ
8 移植性のある時間計測の方法
計算プログラムにおいては、処理にどれだけ時間がかかったのかを測りたい場合があります。 ここではFortranの標準に準拠した形での時間計測の方法を説明します。
経過時間を測定するには、組込み手続system_clockが利用可能です。
[
sys-clock.f90
] - 経過時間計測のサンプル
program sys_clock implicit none integer t1, t2, t_rate, t_max, diff call system_clock(t1) ! 開始時を記録 ! ! 計算コード ! call system_clock(t2, t_rate, t_max) ! 終了時を記録 if ( t2 < t1 ) then diff = (t_max - t1) + t2 + 1 else diff = t2 - t1 endif print "(A, F10.3)", "time it took was:", diff/dble(t_rate) end program sys_clock 出力例: time it took was: 1.576
CPU時間を計測するには組込み手続cpu_timeが利用可能です。
(cpu_timeはFortran95で新たに追加された関数です)
[
cpu-time.f90
] - CPU時間計測のサンプル
program cputime implicit none real :: t1, t2 call cpu_time( t1 ) ! ! 計算コード ! call cpu_time( t2 ) print *, "cpu time:", t2-t1, "seconds." end program cputime 出力例: cpu time: 0.7800050 seconds.
前へ 上へ 次へ