Главная страница
    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.46 MB
Время: 0.043 c
15-1211091780
NailMan
2008-05-18 10:23
2008.07.06
Объясните как прога определяет музыку?


15-1211296737
buzb
2008-05-20 19:18
2008.07.06
Посоветуйте C++ компилятор.


2-1212697784
DmT
2008-06-06 00:29
2008.07.06
Как получить копию меню активного окна?


2-1212653898
Kaer
2008-06-05 12:18
2008.07.06
Не работает Int64


9-1169734159
Creative
2007-01-25 17:09
2008.07.06
3D tetris





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