![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из способов будет правильным и быстрым? [D7, XP]
Antip © (2006-04-15 14:41:00)Пишу процедурку небольшую и вот задался вопросом. Как будет правильнее, вызывать два раза одну и ту же функцию для получения нового текста, или же создать переменную и вызвать всего один раз функцию создания нового текста. Вот какие варианты. Подскажите пожалуйста какой будет быстрее и правильнее? или для компилятора эти два варианта означают одно и тоже?
function NewText(Str: String): string;
begin
Result := Str + ' мой текст';
end;
Вариант 1.
procedure DrawIt(Cnvs: TCanvas; R: TRect; OldText: String);
begin
DrawText(Cnvs.Handle, PChar(NewText(OldText)), Length(NewText(OldText)), R, DT_CALCRECT);
end;
Вариант 2.
procedure DrawIt(Cnvs: TCanvas; R: TRect; OldText: String);
var astr: string;
begin
astr := NewText(OldText);
DrawText(Cnvs.Handle, PChar(astr), Length(astr), R, DT_CALCRECT);
end;
Anatoly Podgoretsky (2006-04-15 17:07:00) [1]Antip (15.04.06 16:44) [6]
Согласно вопроса, намекешь, что оно у нас есть.
Antip (2006-04-15 16:44:00) [2]
> Anatoly Podgoretsky © (15.04.06 15:26) [4]
> Так ты использовал секундомер или нет?
да времени нет эксперементы ставить ;)
> sniknik © (15.04.06 15:26) [5]
спасибо, я понял. выгоднее все-таки второй вариант, хоть и кода на строчку больше ))
Anatoly Podgoretsky (2006-04-15 15:26:00) [3]Так ты использовал секундомер или нет?
sniknik (2006-04-15 15:26:00) [4]> Но будут ли два вызова функции напряжнее, чем создание переменной и вызов фукнции один раз
а ты, что думаеш, в первом варианте переменные не создаются? вернее память под данные не выделяется?
а присвоение указателя на созданную переменную(данные), сделать так сказать визуальное ее представление, это как раз дело пустяковое, меньше чем шуточное.
Antip (2006-04-15 14:49:00) [5]Ну понятно, что любой вариант прорисовки для человека будет незаметен. Тут вопрос больше, что для системы тяжелее будет, пусть хоть в наносекунду. Но будут ли два вызова функции напряжнее, чем создание переменной и вызов фукнции один раз, вот чего я пока незнаю и зачем собственно и задал вопрос. Инициализация переменной тоже дело не шутошное для системы имхо 0_о))
jack128 (2006-04-15 14:47:00) [6]как считаешь, что быстрее - вызвать функцию один раз или два?
Anatoly Podgoretsky (2006-04-15 14:43:00) [7]Секундомер.