Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Вниз

Как из способов будет правильным и быстрым?   Найти похожие ветки 

 
Antip   (2006-04-15 14:41) [0]

Пишу процедурку небольшую и вот задался вопросом. Как будет правильнее, вызывать два раза одну и ту же функцию для получения нового текста, или же создать переменную и вызвать всего один раз функцию создания нового текста. Вот какие варианты. Подскажите пожалуйста какой будет быстрее и правильнее? или для компилятора эти два варианта означают одно и тоже?


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 14:43) [1]

Секундомер.


 
jack128 ©   (2006-04-15 14:47) [2]

как считаешь, что быстрее - вызвать функцию один раз или два?


 
Antip   (2006-04-15 14:49) [3]

Ну понятно, что любой вариант прорисовки для человека будет незаметен. Тут вопрос больше, что для системы тяжелее будет, пусть хоть в наносекунду. Но будут ли два вызова функции напряжнее, чем создание переменной и вызов фукнции один раз, вот чего я пока незнаю и зачем собственно и задал вопрос. Инициализация переменной тоже дело не шутошное для системы имхо 0_о))


 
Anatoly Podgoretsky ©   (2006-04-15 15:26) [4]

Так ты использовал секундомер или нет?


 
sniknik ©   (2006-04-15 15:26) [5]

> Но будут ли два вызова функции напряжнее, чем создание переменной и вызов фукнции один раз
а ты, что думаеш, в первом варианте переменные не создаются? вернее память под данные не выделяется?

а присвоение указателя на созданную переменную(данные), сделать так сказать визуальное ее представление, это как раз дело пустяковое, меньше чем шуточное.


 
Antip   (2006-04-15 16:44) [6]


> Anatoly Podgoretsky ©   (15.04.06 15:26) [4]
> Так ты использовал секундомер или нет?

да времени нет эксперементы ставить ;)


> sniknik ©   (15.04.06 15:26) [5]

спасибо, я понял. выгоднее все-таки второй вариант, хоть и кода на строчку больше ))


 
Anatoly Podgoretsky ©   (2006-04-15 17:07) [7]

Antip   (15.04.06 16:44) [6]
Согласно вопроса, намекешь, что оно у нас есть.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.04.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.01 c
2-1144761826
Первокласник Вася
2006-04-11 17:23
2006.04.30
Хочу на форме создать Edit. Не получается :(


2-1145032642
Тимон
2006-04-14 20:37
2006.04.30
ошибка при работе с tstringlist & stringgrid


9-1127503221
grouzd[E]v
2005-09-23 23:20
2006.04.30
64k intro testing


15-1144518844
ArtemESC
2006-04-08 21:54
2006.04.30
О чем вы думали когда придумывали свои ники?


2-1144932563
dera
2006-04-13 16:49
2006.04.30
Как решить проблему?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский