Форум: "Потрепаться";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Вниз---<<< Скорость кода >>>--- Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c