Как сравнить быстродействие алгоритмов?
01.01.2007
Если вас сколько-нибудь интересует скорость работы вашей программы, то нужно смерить скорость алгоритмов и сравнивать их. Здесь я привожу пример, сравнивающий четыре способа возведения 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;
Автор справки: Алексей Денисов (aleksey@sch103.krasnoyarsk.su)