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

Вниз

Как оптимизировать код?   Найти похожие ветки 

 
tytus   (2008-06-06 16:47) [0]

Доброго дня мастера. Есть ткакой код

for i:=0 to 281 do
if ((j>=156)and(j<=211))or((j>=226)and(j<=281))then


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


 
Ega23 ©   (2008-06-06 16:52) [1]

а чем не нравится-то?


 
Anatoly Podgoretsky ©   (2008-06-06 16:58) [2]

> tytus  (06.06.2008 16:47:00)  [0]

for i:=156 to 281 do


 
LightRipple ©   (2008-06-06 17:00) [3]

> [0] tytus   (06.06.08 16:47)
> Доброго дня мастера. Есть ткакой код

Вычислить значение ((j>=156)and(j<=211))or((j>=226)and(j<=281))
до цикла, а не пересчитывать его 282 раза :)


 
SergeyIT ©   (2008-06-06 17:05) [4]

Не понятно - i и j это опечатка или разные переменные?


 
tytus   (2008-06-06 17:06) [5]

этот код может вызываться 100 000 раз.
и нужно именно от 0 до 281.
i:=0;
while i<281 do
begin
 if i=156 then
 while i<=211 do
 begin
   //выполняем код
   inc(i);
 end else
 if i=226 then
 while i<281 do
 begin
   //выполняем другой код
   inc(i);
 end else begin
    //выполняем исче однин код
    inc(i);
 end;
end;


 
Palladin ©   (2008-06-06 17:09) [6]


> tytus   (06.06.08 17:06) [5]

а на три цикла с разными диапазонами религия не позволяет разбить?


 
tytus   (2008-06-06 17:09) [7]

>SergeyIT ©   (06.06.08 17:05) [4]
да, опечатка, должно быть i


 
tytus   (2008-06-06 17:12) [8]

>Palladin ©   (06.06.08 17:09) [6]
тоже вариант. тогда на 4 цыкла
1)от 0..155
2)от 156..211
3)от 212..225
4)от 226 до 281


 
SergeyIT ©   (2008-06-06 17:16) [9]

А может
//выполняем код и т.д.
жрет гораздо больше процессорного времени? Тогда циклы оптимизировать особого смысла не имеет.
Опять перепутали if i while?


 
tytus   (2008-06-06 17:23) [10]

>SergeyIT ©   (06.06.08 17:16) [9]
да вроде не перепутал.
Ладно, спасибо всем.
Действительно, нужно разбивать сложные цыклы
на более простые.

SergeyIT ©   (06.06.08 17:16) [9]
жрет гораздо больше процессорного времени?

да нет, код простенький.
Просто когда-то читал, что операторы перехода по условию
требуют много  времени на обработку.
имхо tytus   (06.06.08 17:06) [5] - должен решить проблему.
Вместо 282 операторов if , выполнится всего 3
(без учета while).


 
Игорь Шевченко ©   (2008-06-06 19:32) [11]


> Просто когда-то читал, что операторы перехода по условию
> требуют много  времени на обработку.


Это ты не то читал



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

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

Наверх





Память: 0.47 MB
Время: 0.043 c
15-1211272490
azamatufa
2008-05-20 12:34
2008.07.06
Почему хвост форума периодично обрезается???


15-1211658820
Житель_форума
2008-05-24 23:53
2008.07.06
Перенос домена *msk.su


3-1201272641
Германн
2008-01-25 17:50
2008.07.06
Проблема с LIKE


2-1212846927
9899100
2008-06-07 17:55
2008.07.06
INI


3-1201600224
dest81
2008-01-29 12:50
2008.07.06
FireBird неповторяющиеся записи





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский