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

Вниз

---<<< Скорость кода >>>---   Найти похожие ветки 

 
RealRascal ©   (2003-11-16 11:38) [0]

Что быстрее 10 раз умножить или 100 раз прибавить? или 5 раз поделить? или один раз синус посчитать? Одним словом, оптимизация, оптимизация и еще раз оптимизация. Сабж касается не только элементарных действий, но всего, что относится к прорисовке, поиску элемента. Приветствуется все - от случев из жизни до конктерных строчек кода.


 
Fenik ©   (2003-11-16 12:30) [1]

Ага. Возвращаясь к той ветке.
Какая функция рациональней?

1.
function Sev: Integer;
var i: Integer;
begin
for i := 1 to (250 div 7) do begin
Result := 7*i;
if (Result mod 2 = 1) and
(Result mod 3 = 2) and
(Result mod 4 = 3) and
(Result mod 5 = 4) and
(Result mod 6 = 5) then Exit;
end;
end;


2.
function Sev: Integer;
var i: Integer;
begin
Result := 7;
for i := 1 to (250 div 7) do begin
if (Result mod 2 = 1) and
(Result mod 3 = 2) and
(Result mod 4 = 3) and
(Result mod 5 = 4) and
(Result mod 6 = 5) then Exit;
Inc(Result, 7);
end;
end;


3.
function Sev: Integer;
begin
Result := 7;
while Result < 250 do begin
if (Result mod 2 = 1) and
(Result mod 3 = 2) and
(Result mod 4 = 3) and
(Result mod 5 = 4) and
(Result mod 6 = 5) then Exit;
Inc(Result, 7);
end;
end;


Вроде 3. Но незначительно.. Так?


 
Fenik ©   (2003-11-16 15:33) [2]

Интересно, порядок условий влияет на скорость отсеивания чисел?

4.
function Sev: Integer;
begin
Result := 7;
while Result < 250 do begin
if (Result mod 6 = 5) and
(Result mod 5 = 4) and
(Result mod 4 = 3) and
(Result mod 3 = 2) and
(Result mod 2 = 1) then Exit;
Inc(Result, 7);
end;
end;


Быстрее ли 4, чем 3 ?


 
Anatoly Podgoretsky ©   (2003-11-16 17:03) [3]

Берешь и измеряешь все свои фантазии.


 
Fenik ©   (2003-11-16 18:27) [4]

http://delphimaster.net/view/14-1068964672/


 
RealRascal ©   (2003-11-19 16:27) [5]

Создавая эту ветку, я ждал несколько иных результатов. Но уж если народу так требуется что-то конкретное, поищу у себя в арх что-нть поддающееся оптимизации. После каждого усовершенствования буду выводить результат в секундах. OK?


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

Не надо :)


 
RealRascal ©   (2003-11-19 16:34) [7]

But why?


 
Skier ©   (2003-11-19 16:36) [8]

>RealRascal © (16.11.03 11:38)
Купи себе книжку про конструирование компиляторов и внимательно
прочитай раздел касающийся оптимизирующего блока компилятора, а точнее про замену более "дорогих" инструкций более "дешёвыми".
Многое разъясниться...


 
Vlad Oshin ©   (2003-11-19 16:51) [9]

кол-во однотипных операций/на время, где кол-во -> много :)


 
Игорь Шевченко ©   (2003-11-19 16:56) [10]

RealRascal © (19.11.03 16:34)

А зачем ? :) Начальный и окончательный результаты еще могут быть интересны, а вот промежуточные - вряд ли.



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
1-36740
SDW_syscoder
2003-12-02 09:19
2003.12.12
Класс TStringList


3-36538
Talla2k
2003-11-18 16:27
2003.12.12
Хранимые процедуры


14-36836
Igor_thief
2003-11-14 16:30
2003.12.12
Курсовой


3-36523
AlexanderSK
2003-11-20 17:49
2003.12.12
Как предеть NULL в хранимую процедуру?


3-36554
wik
2003-11-20 20:56
2003.12.12
нужен koi8-r в DBGrid (Данные беруться через DataSet из базы)