今回は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月号より)