Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1221640600
Drowsy
2008-09-17 12:36
2008.10.26
=Bookmark= и


2-1221557905
Fynjy
2008-09-16 13:38
2008.10.26
как перенести выбранное обозначение в другую форму?


1-1201004255
Bocman
2008-01-22 15:17
2008.10.26
IntraWeb и ISAPI


3-1208352253
SkyN
2008-04-16 17:24
2008.10.26
Программа на Delphi в качестве ODBC источника.


2-1221740702
Cosinus
2008-09-18 16:25
2008.10.26
Как запретить показ системного меню?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский