Migaro. 技術Tips

                       

ミガロ. 製品の技術情報
IBMiの活用に役立つ情報を掲載!


Delphi 処理にかかった時間の計測方法

今回はDelphi/400でプログラムの処理経過時間を調べる方法をご紹介致します。

処理時間を計測することができれば、パフォーマンスなどの調査を行う際に、
どこで時間がかかっているかなど詳しい検証に役立ちます。


例えばSELECT文実行に掛かる時間を表示する方法について考えてみましょう。

Now関数やTime関数で、24時間制で表されるその日の経過時間(Double)を取得できます。

  • Now関数:PCの現在日時を取得(整数部が日付、小数部が時刻)
  • Time関数:PCの現在時刻を取得(整数部なし、小数部が時刻)

SQL文を実行する前と後にそれぞれの時間を取得します。
経過時間はその前と後を引き算した「差」で求めることができます。

経過時間をEditに表示するには、FormatDateTime関数を使用して、文字型に変換します。
コーディング例は次のようになります。

procedure TForm1.Button1Click(Sender: TObject);
var
  STM : TTime;
  ETM : TTime;
begin
  // 開始時刻
  STM := Time;

  // ★★時間を計測したい処理★★(ここではSQL文実行)
  FDQuery1.Active := True;

  // 終了時刻
  ETM := Time;
  // 処理時間の表示
  Edit1.Text := FormatDateTime('hh:nn:ss:zzz', ETM - STM);

  //SQL文CLOSE
  FDQuery1.Active := False;
end;

上記ではFormatDateTimeの指定で、Editに「時:分:秒:ミリ秒」を表示するようにしています。

結果表示の例(イメージ)

 

ここではEdit1に結果を出力をしていますが、
メッセージで表示したり、処理単位で時間を測定してファイルに出力したりなど、
組み込み方は応用も効きますのでご活用ください。

 

 

(ミガロ.情報マガジン「MIGARO News!!」Vol.201 2017年8月号より)