Ver Mensaje Individual
  #1  
Antiguo 26-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
 
Registrado: Aug 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 10
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Tiempo de ejecucion de un proceso

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: // tipo record con los milisegundos y segundos que demoro la ejecucion total
begin
  Time := TBenchmark.Benchmark(ITERATIONS,
  procedure
  begin
    { foo }
  end);

  // otra forma
  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
Responder Con Cita