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

Вниз

"умное связывание" компилятора   Найти похожие ветки 

 
АК ©   (2007-01-25 17:44) [0]

Была такая ситуация: писал программку под WinAPI, нужна была функция для вычисления арксинуса, подключил модуль Math и вызвал нужную функцию , размер проги при этом увеличивался примерно на 20Кб (это было вполне существенно), если я просто копировал эту функцию из модуля Math в свой, то размер увеличивался на копейки. Так в чём тогда заключается "умное связывание" компилятора, я ведь из использую всего одну функцию из модуля, а компилируется считай что весь. Те же модули Windows, Messages, System просто огромные и всё же целиком к exe-шнику они не прикрепляются.


 
Джо ©   (2007-01-25 17:47) [1]

Math использует также модули SysUtils и Types. И даже если решить (хоть это и не так), что он ничего из них не использует, в них имеются секции initialization и finalization, код из которых тоже будет линковаться к твоему исполнимому модулю.


 
novill ©   (2007-01-25 18:02) [2]

Секции initialization и finalization есть конкретно в молуле SysUtils.

код
program Project2;

{$APPTYPE CONSOLE}
{
uses
 SysUtils;
}
begin
Readln;
 { TODO -oUser -cConsole Main : Insert code here }
end.


дает размер 9216 байт

код
program Project2;
{$APPTYPE CONSOLE}
uses
 SysUtils;

begin
Readln;
 { TODO -oUser -cConsole Main : Insert code here }
end.


дает размер 39936

итого 30720 за подключение модуля SysUtils


 
ак ©   (2007-01-25 18:06) [3]

Так что - вся фича в SysUtils?


 
novill ©   (2007-01-25 18:08) [4]

> Так что - вся фича в SysUtils?

конкретно в секциях initialization и finalization и код который там выполняется :)


 
ак ©   (2007-01-25 18:14) [5]

Спасибо, просветили.


 
Сергей М. ©   (2007-01-26 10:22) [6]


> е же модули Windows, Messages, System просто огромные и
> всё же целиком к exe-шнику они не прикрепляются


Прикрепляются. Точно так же как и любой другой юнит, ибо правила для всех юнитов с этой т.з. одни и те же.



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
6-1157690605
Merak
2006-09-08 08:43
2007.02.11
прокси в IRC


15-1169296134
boriskb
2007-01-20 15:28
2007.02.11
Вот в наше время!


2-1169754437
TStas
2007-01-25 22:47
2007.02.11
Как получить имя текущего пользователя на компе?


9-1143630278
BLack Fury
2006-03-29 15:04
2007.02.11
Как растянуть картинку на нужную площадь


3-1164209328
Kolan
2006-11-22 18:28
2007.02.11
Данные на DBGrid е отображаются, а на DBCombobox - нет, почему?