Форум: "Прочее";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];
ВнизКак работает оптимизатор размера проектов в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c