Medindo o tempo de execução de um processo


Hoje eu tive a necessidade de medir o tempo que uma rotina levou para ser executada no meu projeto, 
Então a forma que utilizei foi, peguei a hora, minutos e segundo que iniciei e verifico com o tempo em que foi finalizado, simples não é?

Basicamente pensei em tem 2 formas:
Gettickcount Retorna o número de milissegundos
Timegettime Retorna o número de milissegundos e se encontra na unit mmsystem

Timegettime.
procedure TForm1.FormCreate(Sender: TObject);
var
  lTempoInicial, lTempoTotalNaProcedure: Cardinal;
begin
  lTempoInicial := TimeGetTime;
  { A execução da função aqui }
  lTempoTotalNaProcedure := TimeGetTime - lTempoInicial;
  ShowMessage(Format('Tempo em segundos: %f', [lTempoTotalNaProcedure]));
end;

Gettickcount.
procedure TForm1.BtnGetTickCountClick(Sender: TObject);
var
  lInicio, lFinal, lElapsedMilliseconds: Cardinal;
begin
  lInicio := GetTickCount;
  Sleep(3000); {Simula um processo}
  lFinal := GetTickCount;
  lElapsedMilliseconds := lFinal - lInicio;  {Retorna em milissegundos}
  ShowMessage('Total Seconds: ' + IntToStr(round(lElapsedMilliseconds/ 1000))); {Converte para Segundos}
end;


0 comentários:

Postar um comentário