Главная страница
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.015 c
1-36707
Лана Розанова
2003-11-26 20:38
2003.12.12
ListBox


1-36625
Ega23
2003-12-03 10:53
2003.12.12
Сохранить картинку в файл.


1-36733
Галин Алексей
2003-12-01 13:59
2003.12.12
Помогоите с OLE-Automation тип Object(VB) это VARIANT(IDL)???


3-36541
Goida
2003-11-20 22:12
2003.12.12
Что такое FetchAll?


1-36660
Magical
2003-11-30 17:08
2003.12.12
Ищем только папки