Главная страница
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.018 c
7-36868
--olg-
2003-10-03 09:53
2003.12.12
Управление притером через WinSpool (WinXP)


1-36734
LittleGirly
2003-12-02 10:24
2003.12.12
Вопрос по TreeView


14-36824
FoxPro
2003-11-19 13:34
2003.12.12
Вопрос по поводу FoxPro


1-36738
Koba
2003-12-01 11:04
2003.12.12
Перемещение формы по экрану.


1-36664
hooky-mars
2003-11-30 15:34
2003.12.12
Как остледить обращения к файлам