Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Оптимизация ?? [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]

Это вопрос немного даже философский :). Если обект прописывается, его будут использовать, а если нет - зачем прописывать. А ты не пробовал дальше свой объект просто инициализировать: выросла программа или нет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо