トップへ(mam-mam.net/)

処理時間を計る

検索:

「処理時間を計る」

処理時間を計測するにはGetTickCount関数を使うことが多いのですが、もっと正確に処理時間を計測するには?
timeGetTime

回答

timeGetTimeを使うと分解能1msで計測することができます。

GetTickCount
分解能:約15ミリ秒

timeGetTime
分解能:最小で1ミリ秒
(分解能はtimeBeginPeriod関数で設定する)

ソース

-------------------------------------------------------------------
//GetTickCount APIを使用した例
var StartTime:Cardinal;
    i:integer;
begin
  StartTime:=GetTickCount;
  //何らかの処理
  for i := 0 to 999 do
    memo1.Lines.Add(Format('%3d',[i]));
  memo1.Lines.Add(inttostr(GetTickCount-StartTime)+'ミリ秒');
end;
-------------------------------------------------------------------
//timeGetTime APIを使用した例
uses Winapi.MMSystem;

var StartTime:Cardinal;
    i:integer;
begin
  timeBeginPeriod(1); //分解能を1msに設定
  StartTime:=timeGetTime;
  //何らかの処理
  for i := 0 to 999 do
    memo1.Lines.Add(Format('%3d',[i]));
  memo1.Lines.Add(inttostr(timeGetTime-StartTime)+'ミリ秒');
end;