IPB
ЛогинПароль:

> Внимание! Действует предмодерация

Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.

> Улучшение кода, Уменьшение времени работы программ
сообщение
Сообщение #1


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Быстрые циклы.

Всего тестировалось 4 конструкции:
  • "FOR ... TO ... Do...",
  • "WHILE... do...",
  • "REPEAT ... until ...",
  • " If... Then GOTO ..."

Проведение теста:
сортировка массива (array[1..20] of integer) методом пузырька.
Всего было проведено 30 тестов :
10 c n= 10^4;
10 c n= 10^5;
10 c n= 10^6;
и один тест с n=10^7 (один, т.к. с увеличением степени n на 1, время проведения теста увеличивается соответственно в 10 раз)


Результат:
Во всех случаях (каждый тест - новый массив) самой быстрой конструкцией оказалась "While ... do...", следом за ней "If ... then Goto..."


Прикрепленные файлы
Прикрепленный файл  test.pas ( 1.76 килобайт ) Кол-во скачиваний: 669


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


P@sh@, сомневаюсь, что игра стОит свеч. Хотя попробовать можно... на jump'ы тратится не только время на их выполнение, если еще учесть, что может неверно сработать "предсказание" процессором, какую команду пускать на конвейер. Хотя это уже оптимизация будет не "качественная", а какая-то "количественная"...

ЗЫ: я ее все равно уже сдал...


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Altair   Улучшение кода   7.03.2004 17:39
mj   на процессорах P2 и ниже FOR быстрее чем WHILE до…   13.03.2004 22:09
Atos   И Да ЗдравствуетИтерация! Пример: старая добра…   16.03.2004 18:44
trminator   [b]Ускорение вычислений mod Програма считает 50 -…   15.05.2004 22:53
P@sh@   [color=blue]Деление на степень двойки Аналогично …   16.05.2004 0:08
P@sh@   Разворачивание циклов. -=loops unrolling=- Один и…   17.05.2004 22:42
trminator   P@sh@, сомневаюсь, что игра стОит свеч. Хотя попро…   19.05.2004 23:35
Altair   Процедуры FAR Все процедуры в модулях, пишутся в …   25.05.2004 18:28
BlackShadow   Специально для Oleg_Z: В BP есть такая возможность…   25.05.2004 20:26
BlackShadow   Описалова в книгах достаточно. Посмотрю чего - зав…   26.05.2004 2:46
trminator   Как нам говорили на лекции по ОС, оверлей - аналог…   27.05.2004 22:30
trminator   А про использование AssignCRT вместо Assign для за…   27.05.2004 22:37
BlackShadow   Ну и зкономии ради можно (олимпиадныю трюк) воспол…   28.05.2004 1:40
Altair   Просто есть файловая переменная Input и output тол…   28.05.2004 1:44
trminator   Про сортировку. Понятно, что пузырек и компания ни…   28.05.2004 3:04
BlackShadow   trminator, да похоже на пирамидку. Oleg_Z, использ…   28.05.2004 15:36
trminator   Так... я не закончил про сортировки :) ИМХО, испол…   29.05.2004 19:32
BlackShadow   trminator, по памяти, может, её и проще, но на реф…   31.05.2004 15:08
BlackShadow   Oleg_Z, вот чего у меня в книге есть: Функции Over…   31.05.2004 15:43
Altair   То есть ты хочешь сказать, что если описать : va…   31.05.2004 19:44
BlackShadow   А, если ты напишешь так: Var  a,b:Inte…   31.05.2004 20:04
Romtek   Взято из ООП. Объектно-ориентированное программиро…   8.06.2004 2:25
Altair   Begin и end лишние видимо я поставил, а вот объеди…   8.06.2004 17:52
BlackShadow   Вспомнил один момент такой. При работе с дробями, …   15.06.2004 16:32
Altair   Нет, ассемблер нужно применять только для шлифовк…   15.06.2004 23:27
Romtek   Complete boolean evaluation (compiler option)   16.06.2004 2:08
BlackShadow   Да уж, Oleg_Z, это действительно отключается дирек…   16.06.2004 17:42
Altair   BlackShadow, в следующий раз оформляй логические …   16.06.2004 19:20
Romtek   В первом случае имеем 2 операции, а во втором - 3   16.06.2004 20:15
Altair   Да, но во первых операция NOT ИМХО должна выполнят…   17.06.2004 0:24
Altair   Вот еще: Если в программе используется write и wri…   17.06.2004 17:34
Altair   REAL почти в 2 раза медленнее [b]ВСЕХ других число…   18.06.2004 18:05
P@sh@   Oleg_Z Real потому медленнее, что у него размер н…   26.06.2004 11:41
BlackShadow   Int64 появился только в 32-битных компиляторах. По…   2.07.2004 19:23
Atos   А вот это, мне кажется, интересно: Простой пример:…   16.10.2004 12:13
BlackShadow   Atos, ну это и лосю понятно. При последовательном …   19.10.2004 1:24
Atos   В каком именно Паскале? Ну, я же не лось... Не…   19.10.2004 10:17
GoodWind   Borland Turbo Pascal 7.0 TMT pascal да и во всех …   19.10.2004 16:17
Atos   Действительно... Просто никогда её не использовал.…   19.10.2004 17:51
Altair   Странно, тестирую бытсрую и пирамидальную на скоро…   7.11.2004 19:14
Altair   Да, все верно, [color=blue]пирамида медленнее чем…   7.11.2004 20:24
Dark   Просто память физически устроена как конденсаторы …   9.11.2004 5:23
volvo   [b]Обмен значений в переменных. Для увеличения ск…   22.01.2005 23:39


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 7:40
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name