Как сравнить быстродействие алгоритмов

Previous  Top  Next

    
 

 

Если вас сколько-нибудь интересует скорость работы вашей программы, то нужно смерить скорость алгоритмов и сравнивать их. Здесь я привожу пример, сравнивающий четыре способа возведения 2 в степень 30.

 

Code:

uses Math;

 

procedure TForm1.Button1Click(Sender: TObject);

var

Res, Exponent: integer;

Res1: real;

t, i: integer;

begin

Exponent := 30;

 

Application.ProcessMessages;

t := GetTickCount;

for i := 1 to 1000000 do

 

   Res := 1 shl Exponent;

Form1.Caption := Form1.Caption + ' ' +

   IntToStr(GetTickCount - t);

 

Application.ProcessMessages;

t := GetTickCount;

for i := 1 to 1000000 do

   Res1 := LdExp(1, Exponent);

Form1.Caption := Form1.Caption + ' ' +

   IntToStr(GetTickCount - t);

 

Application.ProcessMessages;

t := GetTickCount;

for i := 1 to 1000000 do

   Res1 := IntPower(2, Exponent);

Form1.Caption := Form1.Caption + ' ' +

 

   IntToStr(GetTickCount - t);

 

Application.ProcessMessages;

t := GetTickCount;

for i := 1 to 1000000 do

   Res1 := Power(2, Exponent);

Form1.Caption := Form1.Caption + ' ' +

   IntToStr(GetTickCount - t);

end;

 

©Drkb::04235

Автор советов: Даниил Карапетян

e-mail: delphi4all@narod.ru

 

Автор справки: Алексей Денисов

e-mail: aleksey@sch103.krasnoyarsk.su