Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

какой код будет меньше нагружать систему   Найти похожие ветки 

 
redlord   (2006-03-06 21:52) [0]

всем привет
народ подскажите какой код будет меньше нагружать систему в цикличесском вызове

if copy(s,10,3) = "123"
или
if pos(s,"123") > 0


 
antonn ©   (2006-03-06 21:55) [1]

второй


 
Anatoly Podgoretsky ©   (2006-03-06 22:24) [2]

Результаты этих двух строчек могут серьезно различаться


 
redlord   (2006-03-07 11:47) [3]

to anatoly
а можно по подробнее в каких случаях ипри каких условиях ?


 
sniknik ©   (2006-03-07 11:57) [4]

s:= "if copy(s,10,3) = ""123""";

if copy(s,10,3) = "123" then ShowMessage("copy");

if pos(s,"123") > 0 then ShowMessage("pos");

проверь.


 
redlord   (2006-03-08 00:48) [5]

to sniknik
то что первое условие никогда не выполнится я знаю
но в моем случае "123"  всегда в позиции 10 или этого сочетания нет вообще


 
Германн ©   (2006-03-08 03:13) [6]

sniknik ©   (07.03.06 11:57) [4]
Коля тут несколько пролетел. :))) Имхо.

А по сабжу, вариант "if copy(s,10,3) = "123"" имеет конкретные параметры и считывает и сравнивает считанное.
А вариант "if pos(s,"123") > 0" сначала будет искать. А как долго - неизвестно!


 
sniknik ©   (2006-03-08 11:26) [7]

> Коля тут несколько пролетел. :))) Имхо.
с чего это? разница налицо, и это явно показано этим кодом.

> но в моем случае "123"  всегда в позиции 10 или этого сочетания нет вообще
если строка строгого формата то быстрее, имхо, (без выделений памяти под копию, копирований, поисков) будет просто сравнить
if (s[10]= "1") and (s[11]= "2") and (s[12]= "3") then ...
(без "имхо" это надо проверять, тестить на большом цикле)


 
sniknik ©   (2006-03-08 11:32) [8]

и кстати если позиция известно то pos можно заменить на posex и сравнение делать на = 10 (будет по смыслу одинаково с copy работать, и чуть быстрее чем с pos)


 
redlord   (2006-03-08 23:49) [9]

на скоко мне помнится для posex надо дополнительный модуль цеплять
а это уже минус
а следователно if s[10]= "1" наверно будет оптимальным решением  

завтра протестирую все три варианта и отпишус о резултатах



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

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.072 c
2-1142191918
Flint-1983
2006-03-12 22:31
2006.03.26
Создание компонентов в run-time


15-1141120583
AlexeyT
2006-02-28 12:56
2006.03.26
Статья "Написание оптимального кода под Delphi"


15-1141127501
ISP
2006-02-28 14:51
2006.03.26
Ну что, пора и на мобилы антивирус ставить....?


15-1140343375
FH
2006-02-19 13:02
2006.03.26
регистрация на borland.com


3-1138708213
Андрей1223
2006-01-31 14:50
2006.03.26
Добавление в запрос сравнения с текущей датой Опции