Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.26;
Скачать: CL | DM;

Вниз

Как работает оптимизатор размера проектов в Delphi ?   Найти похожие ветки 

 
Альф   (2008-09-01 12:12) [0]

Подскажите кто знает, как работает в Delphi оптимизатор включенных в проект модулей ?
Где об этом почитать и можно ли каким-то образом предсказать его поведение ?


 
Альф   (2008-09-01 12:13) [1]

Используя встроенный в Delphi7 анализатор на примере размера кода uses System и SysUtils получаем такие результаты:

Пустой проект

Name      Size Group Package
-------- ----- ----- -------
System   8 707 CODE

Добавление uses SysUtils

Name       Size Group Package
-------- ------ ----- -------
System   13 151 CODE
SysUtils 13 312 CODE

Добавление кода
 i := 33;
 s := IntToStr(i);

Name       Size Group Package
-------- ------ ----- -------
System   13 151 CODE
SysUtils 13 344 CODE

Добавление uses Classes

Name        Size Group Package
--------- ------ ----- -------
Classes   13 414 CODE
System    17 411 CODE
SysUtils  24 108 CODE

Добавление кода
 comp := TComponent.Create(nil);
 comp.Free();

Name        Size Group Package
--------- ------ ----- -------
Classes   26 986 CODE
System    18 315 CODE
SysUtils  24 456 CODE

Добавление uses Sockets

Name        Size Group Package
--------- ------ ----- -------
Classes   26 986 CODE
Sockets      279 CODE
System    18 315 CODE
SysUtils  24 456 CODE

Добавление кода
 tcpcli := TTCPClient.Create(nil);
 tcpcli.Free();

Name        Size Group Package
--------- ------ ----- -------
Classes   26 986 CODE
Sockets    3 671 CODE
System    18 371 CODE
SysUtils  24 776 CODE


 
Сергей М. ©   (2008-09-01 12:25) [2]


> Альф   (01.09.08 12:13) [1]


И что тебя смущает в этих результатах ?


 
Альф   (2008-09-01 14:13) [3]

Меня не смущает :) Хочу разобраться как работает.

Вот возьмём 2-ой и 3-ий результат из примера:
Какая часть SysUtils добавилась в проект ? Это секция инициализации занимает 13 312 байта ? Или еще что-то ...
А при использовании в проекте IntToStr - что именно в этих добавочных 32 байтах ?


 
Игорь Шевченко ©   (2008-09-01 14:14) [4]

Все описание можно свести к четырем словам:
оптимизатор исключает неиспользуемые процедуры.


 
Альф   (2008-09-01 14:31) [5]


> Игорь Шевченко ©   (01.09.08 14:14) [4]
> Все описание можно свести к четырем словам:
> оптимизатор исключает неиспользуемые процедуры.


Это всё конечно прекрасно, но к сожалению, Игорь, эта формальная фраза  не способствует пониманию процесса.
Это как фраза учителя по физике: "Электрический ток это упорядоченное движение заряженных частиц в проводнике" - а толком на пальцах рассказать никто не может.

Т.е. получается эти 32 байта = размер функции IntToStr ?


 
Игорь Шевченко ©   (2008-09-01 15:35) [6]


> Это всё конечно прекрасно, но к сожалению, Игорь, эта формальная
> фраза  не способствует пониманию процесса.


Linker Options|Map|Detailed более способствует пониманию процесса.


 
Сергей М. ©   (2008-09-01 16:06) [7]


> Это секция инициализации занимает 13 312 байта ?


Код секции инициализации + код п/программ, используемых при инициализации



Страницы: 1 вся ветка

Текущий архив: 2008.10.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
2-1221651678
zabgar
2008-09-17 15:41
2008.10.26
Как работать с Access


15-1220290532
Простой
2008-09-01 21:35
2008.10.26
ИК датчик движения, контакт GND


15-1220332426
Василий Жогарев
2008-09-02 09:13
2008.10.26
DWL-2100AP


11-1194649488
Эдик
2007-11-10 02:04
2008.10.26
Модули для работы с файлами 3D Studio Max.


15-1220271848
md10
2008-09-01 16:24
2008.10.26
об ntfs пропавшем диске