Цитата:
Сообщение от seeman_tm
Сравнивается a и b.
Даже сравнивнение a и a Дадут тот же результат.
По сути не важно значение а и б, главное чтоб соответствовали одному и тому же типу.
То есть, а и b пусть относятся к какому нибудь одному типу, и не важно какие у низ значения, результат практически одинаковый всегда.
|
Та не скажи. Сделай два теста - в одном будут сравниваться две разные строки, например "9797979797979797" и "7979797979797979", а во втором две одинаковые строки, например "9797979797979797" и "9797979797979797". Одинаковые строки будут как правило сравниваться дольше (подумай почему).
Цитата:
Сообщение от seeman_tm
А строка "9797979797979797" сравнивается быстрее строки "aaaaaaaa" по тому что там тип данных другой. String и ShortString
|
Я вообще-то имел ввиду 2 последние (однотипные) строки. Мне просто поначалу ошибочно показалось, что высота столбиков соответствует скорости сравнивания, а оказалось соответствует количеству сравниваний - тогда всё верно.
Цитата:
Сообщение от seeman_tm
Почитай в чём у них отличия.
|
Да я уже 15 лет как программирую на Delphi, и о элементарных вещах уже всё прочитано вдоль и поперёк.
Цитата:
Сообщение от seeman_tm
Если надо, могу исходничёк кинуть.
|
А вот и исходничёк:
Код:
function Test(Str1, Str2: String): Extended;
var
i: Integer;
tic1, tic2: DWORD;
begin
UniqueString(Str1);
UniqueString(Str2);
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('9797979797979797', '9797979797979797'),
Test('9797979797979797', '7979797979797979')]);
end;