![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Оптимизация ?? [Delphi]
SPeller © (2002-06-30 06:39:00)Всем привет. Вот, начитался тут что КОЛ не включает код в ЕХЕшник если он нигде не вызывается. Тогда почему когда я прописал юсес на мой модуль с описанием объекта по всем правилам КОЛа размер ЕХЕшника вырос? Я этот объект нигде ниразу не вызывал, юсес там только на модули KOL и Windows. Что же это получается?
SPeller (2002-07-01 18:19:00) [1]Спаибо, объяснили что к чему. Объект мой - аналог TRegistry, с несколькоми специфическими ему типами. В uses модуля KOL и Windows, в uses проекта абсолютно то же самое (прога состоит из проекта и этого модуля, форм нет). а размер увеличивался по-моему с 16 до 20 с копейками Кб.
Vladimir Kladov (2002-07-01 16:47:00) [2]>SPeller
>Тогда почему когда я прописал юсес на мой модуль с описанием >объекта по всем правилам КОЛа размер ЕХЕшника вырос? Я этот >объект нигде ниразу не вызывал, юсес там только на модули KOL и >Windows. Что же это получается?
>
Речь идет в основном о коде самого KOL. Каков был бы размер экзешника,если все, что есть в KOL, включилось бы в экзешник? Не знаете, и слава Богу. Я тоже не знаю. Но думаю, 500К было бы точно :)
> SPeller
> Суть в том что код объекта вообще нигде
> не используется, зачем тогда этот код зашивается в экзе?
У этого модуля есть свои uses, и компилятор также посмотрит и на них, неважно, используется что-либо из самого модуля или нет.
Если есть initialization / finalization в этом модуле, или в тех
модулях, которые перечислены в _его_ uses, то это иногда может быть достаточно, чтобы к программе подключились несколько сотен К байт.
Кроме того, в экзешник войдут все типизированные константы из этого модуля, и из всех, которые он использует, по нисходящей. Вот, кстати, возможная причина. Если была объявлена переменная описанного типа, то компилятор, возможно, добавил все, и все, что нужно для этого типа.
А так вопрос правда очень философский. Вычищайте ненужные модули из uses, и жить будет легче. А еще, перед финальным построением (Build)желательно выставить в проекте опции оптимизации, убрать отладочную информацию, и пройтись по всем директориям, где лежат dcu-файлы, и стереть их.
HekTo (2002-07-01 16:12:00) [3]A в uses твоего модуля не было ссылок на что-нибудь вроде SysUtils или Classes ? И на сколько вырос размер exe-шника ?
SPeller (2002-07-01 14:49:00) [4]Уважаемый Владимор Кладов! Ответьте хоть что-нибудь
Gandalf (2002-07-01 10:19:00) [5]Я так понимаю, что описания самого объекта всеж таки в ехе идет (а также возможно и константы), но не используемые методы не идут. Хотя лучше услышать что скажет Кладов.
SPeller (2002-07-01 09:25:00) [6]Суть в том что код объекта вообще нигде не используется, зачем тогда этот код зашивается в экзе?
octy (2002-07-01 07:37:00) [7]Это вопрос немного даже философский :). Если обект прописывается, его будут использовать, а если нет - зачем прописывать. А ты не пробовал дальше свой объект просто инициализировать: выросла программа или нет?
octy (2002-07-01 07:36:00) [8]Это вопрос немного даже философский :). Если обект прописывается, его будут использовать, а если нет - зачем прописывать. А ты не пробовал дальше свой объект просто инициализировать: выросла программа или нет?