Cronometrar tu código  

Enviado Por: Q3 Team
Web : http://www.q3.nu
Email: dlib@q3.nu
Fecha: 16/03/01

Truco accedido 54 veces

 


Aqui tienes un ejemplo. El resultado se muestra en Label1:


 procedure TForm1.Button5Click(Sender: TObject);
 var
    Start:longint;
    i,n:integer;
 begin
    Start:=GetTickCount;

    {Your code to measure here}
    n:=0;
    for i:=1 to 9900000 do
    begin
      Inc(n);
    end;

    Label1.Caption:='Elapsed Time in miliseconds:'
                    +IntToStr(GetTickCount-Start);
 end;



Si tu código es mucho más rápido que 1 milisegundo, puedes ejecutarlo n veces dentro de un bucle y luego dividir el resultado por n...


Enviado por: Jorge Gilabert (jgilabert@hotmail.com)
Para cronometrar el código con precisión de ciclos de reloj del procesador, se pueden utilizar los contadores hardware de alta precisión de la placa base. Con mi Pentium III 700 tengo una precisión de 0.8 microsegundos


 var
   freq, start, stop: TLargeInteger;
   lapsoStr: string;

 begin
   QueryPerformanceFrequency(freq);
   QueryPerformanceCounter(Start);

   { aquí va el código a medir el tiempo de ejecución }

   QueryPerformanceCounter(Stop);
   lapsoStr := FloatToStr(round((Stop-Start)/freq));       //en segundos
   lapsoStr := FloatToStr(round((Stop-Start)/freq*1000));  //en milisegundos
 end;




Actualizado el 16/03/2001 (Medicion hard)