Hoje eu tive a necessidade de medir quanto tempo uma rotina levou para ser executada em um projeto que estou trabalhando…
Pensei comigo: Fácil, né? Pego a hora inicial, executo as paradas e pego a hora final…
No Delphi temos um jeito “elegante” de fazermos isso: GetTickCount.
O GetTickCount retorna o total de milissegundos já contados desde que o sistema foi iniciado. E o malandro não para mais de contar até segunda ordem
Implementação de exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
**uses Winapi.Windows; procedure TForm1.Button1Click(Sender: TObject); var Inicio, Fim: Cardinal; Tempo: Extended; begin Inicio := GetTickCount; //Processamento Sleep(3000); Fim := GetTickCount; //Convertendo em segundos Tempo := (Fim - Inicio) / 1000; ShowMessage(Format('Tempo em segundos: %f', [Tempo])); end; |
A solução é simples e resolve… Por ser uma função da API do Windows, o GetTickCount pode ser utilizado em outras linguagens além do Delphi. No próprio site da Microsoft (msdn), o exemplo é dado em C++.
https://msdn.microsoft.com/pt-br/library/windows/desktop/ms724408%28v=vs.85%29.aspx
Valeu pessoal, abraços!
Bem legal. Melhor que ficar usando operação com data. 🙂
Melhor se convertesse para hora minutos segundos e milisegundos