Показать сообщение отдельно
  #11  
Старый 29.11.2013, 22:50
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от seeman_tm
Цитата:
Одинаковые строки будут как правило сравниваться дольше (подумай почему).
В курсе.
Цитата:
А вот и исходничёк
Не тебе конкретно писал, а вообще всем.

Убери из кода
Цитата:
UniqueString(Str1);
UniqueString(Str2);
И у тебя показатели занятого времени станут в половину меньше на сравнении одинаковых строк.
Значит ты всё же не совсем в курсе, раз предлагаешь убрать UniqueString.
Хорошо, вот вариант без UniqueString:
Код:
function Test(Str1, Str2: String): Extended;
var
  i: Integer;
  tic1, tic2: DWORD;
begin
  tic1 := GetTickCount;
  for i := 1 to 500000000 do
  begin
    if Str1 = Str2 then;
  end;
  tic2 := GetTickCount;

  Result := (tic2 - tic1) / 1000;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessageFmt('Сравнение одинаковых строк заняло %g сек, а разных строк заняло %g сек',
    [Test(IntToStr(9797979797979797), IntToStr(9797979797979797)),
     Test(IntToStr(9797979797979797), IntToStr(7979797979797979))]);
end;
На сколько изменились показатели?
Ответить с цитированием