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

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Уменьшение размера программ, способы, советы
сообщение
Сообщение #1


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

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

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


после нескольких опытов обнаружил, что чем больше модулей прописанно в USES , тем больше программа, т.е компилятор компилирует весь модуль, независимо, от того, используются ли его процедуры. И еще при замене конструкции переменная:=переменная +1 на INC(переменная), размер программы сокращается на 6 байт.
Есть ли способы заметно сократить размер (процентов на 30-40)?


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


Бывалый
***

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

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


модули в паскале всегда подключаются целиком и полностью, т.е. компилируются в TPU (DCU) отдельно, а не в составе вашей программы, а потом линкуются в один екзешник. Из-за этого и была придумана динамическая линковка: DLL/BPL. Они делаются точно так же, просто линкуются не в процессе сборки экзешника, а после его запуска, по запросу... Иначе виндозовские экзешники были бы просто охрененных размеров (десятки мегабайт, если использовать GUI, а кто его не использует?)

Сообщение отредактировано: P@sh@ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Altair   Уменьшение размера программ   27.03.2004 19:26
APAL   Самое очевидное - контролировать описание переменн…   27.03.2004 20:31
AlaRic   1. Используй кроме inc еще dec succ и др. 2. Совет…   28.03.2004 19:07
trminator   Нет смысла. Все равно выделится память 1 байт (ty…   29.03.2004 0:34
Atos   Аналогично! А я ещё первое время пытался всю…   29.03.2004 10:54
trminator   Насколько я помню, inline в Паскале -- вставка маш…   29.03.2004 23:51
SKVOZNJAK   Проверил. Весь модуль Graph не может занимать 4 ки…   30.03.2004 0:32
Altair   Непонятен вопрос с модулями, если в строке USES пр…   30.03.2004 12:47
trminator   Видимо, прикомпиливаются описания переменных, знач…   31.03.2004 0:41
Altair   Точно, теперь я понял - компилируется в модуле все…   31.03.2004 11:38
P@sh@   модули в паскале всегда подключаются целиком и пол…   1.04.2004 13:03
zx1024   Оптимизировать что? Для простейших логических опе…   3.04.2004 4:04
Atos   Почему больше памяти? Имелось в виду хранить boole…   3.04.2004 13:07
Altair   Да, с boolean у разработчиков как-то не вышло, его…   3.04.2004 17:18
P@sh@   зачем заменять его на байт, если это и так байт, и…   7.04.2004 9:21
Altair   >>>зачем заменять его на байт, если это и…   7.04.2004 10:46
trminator   Все-таки лучше оставить boolean =) [ if a ] читает…   8.04.2004 0:26
Altair   trminator, согласен. Я вот еще что придумал: 1)Вм…   8.04.2004 17:56
APAL   Насколько я помню, я тоже это видел или нечто под…   8.04.2004 18:38
CJ   Не вникал в разговор, помню мне кто-то говорил на …   13.04.2004 2:43
Altair   Да, только не всегда это позволяет программа. И мы…   13.04.2004 10:33


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

 





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