Главная страница
    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
10-1150270549
Grant
2006-06-14 11:35
2008.10.26
Работа с Excel


15-1220182153
@!!ex
2008-08-31 15:29
2008.10.26
С праздником поздравляю!


2-1221676471
Евгений Р.
2008-09-17 22:34
2008.10.26
Активная форма MDI приложения


2-1221659101
Terasbetoni
2008-09-17 17:45
2008.10.26
Как клонировать экземпляр компонента


15-1220422642
Dagir
2008-09-03 10:17
2008.10.26
Русский help по Delphi и по DBGrid





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский