Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
1-36652
download
2003-11-29 03:25
2003.12.12
грамотный перенос строки


3-36514
Улан
2003-11-19 07:16
2003.12.12
dbf+ADO


1-36674
Ivolg
2003-11-29 20:16
2003.12.12
Окно!


1-36720
Chery
2003-12-01 12:56
2003.12.12
Подключить к форме хранимой в Dll таблицу, Table - на глав. форме


1-36616
Urvin
2003-12-01 11:05
2003.12.12
Перенос и переносимость





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский