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

Материал из DRKB


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

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;


delphi4all@narod.ru
aleksey@sch103.krasnoyarsk.su


Author: Автор советов: Даниил Карапетян
Author: Автор справки: Алексей Денисов
ID: 04235