Hola,
Si bien este tema ya se trato varias veces, simplemente queria presentar una variante para calcular el tiempo de ejecucion de un proceso en una sola linea de codigo; a mi no me gusta el tener que agregar "las lineas magicas" al inicio y al final del proceso, y me gusta escribir poco codigo y tener algo reusable
Asi que cree una clase que con una sola funcion estatica ejecuta un proceso (TProc) una determinada cantidad de veces y luego retorna el tiempo de ejecucion total:
En este enlace esta el codigo fuente completo
Depende de otra unidad que tambien se encuentra en mi repo,
un cronometro, que basicamente usa el viejo truco del "QueryPerformanceTime"
Ejemplo de uso:
Código Delphi
[-]
uses
RTL.Benchmark;
procedure TForm1.Button1Click(Sender: TObject);
const
ITERATIONS = 5;
var
Time: TBenchmarkTime: begin
Time := TBenchmark.Benchmark(ITERATIONS,
procedure
begin
end);
Time := TBenchmark.Benchmark(1, AlgunProceso);
ShowMessageFmt('ms: %d - secs: %d', [Time.MSecs, Time.Secs]);
end;
De esta manera simplemente agrego un boton cualquiera en la aplicacion, envio como parametro el proceso que quiero ejecutar, y ya tengo el tiempo para informar; tambien puedo controlar la cantidad de veces que quiero que se ejecute
Saludos