Форум: "Начинающим";
Текущий архив: 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