Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
ВнизВопрос о размере приложения - почему? Найти похожие ветки
← →
tipman (2003-12-02 11:58) [0]Пишу так:
program pr;
uses SysUtils;
begin
end.
Почему Delphi пихает в приложение весь модуль SysUtils. Ведь в данном приложении я не использую ни одной функции.
И можно как нить сделать так чтобы Delphi была немного "умнее" в этом вопросе?
← →
Тимохов (2003-12-02 12:00) [1]с чего вы решили что дельфи действительно запихивает этот модуль?
Ваши доказательства?
← →
Jel (2003-12-02 12:01) [2]Если в модуле есть секции инициализации и финализации он включается целиком, по-моему так. В SysUtils они есть.
← →
NikeOLD (2003-12-02 12:06) [3]А ты не пробовал смотреть, что там инициализируется?
Сделай модуль с парой функций и секцией инициализации, используй только одну функцию, вторую не трогай, в initializetion пропиши что-нибудь и тоже используй. Откомпилируй и посмотри, что Дельфи включила в компиляцию.
← →
Jel (2003-12-02 12:15) [4]Не поленился и проверил. Согласен с [3]. Был неправ - в откомпилированный проект попадают только те функции которые реально используются в программе.
← →
Тимохов (2003-12-02 12:17) [5]2jel
В общем-то это общеизвестно (не знаю правда, откуда) поведение компилятора дельфи.
2Атору вопроса
Все-таки где доказательства что глупая дельфи добавила sysutils в проект?
← →
NikeOLD (2003-12-02 12:17) [6]Однако это не всегда так. Например модуль Forms - гроза размера приложения. Убери эту хрень и простая прога, состоящая из окна на API будет весить около 12-17 килобайт.
← →
NikeOLD (2003-12-02 12:34) [7]У ж если совсем прижало и критичен размер, так выдерни нужные функции из SysUtils и забудь про этот модуль вообще.
← →
tipman (2003-12-02 13:18) [8]Тимохов (02.12.03 12:00) [1]
program pr;
uses SysUtils;
begin
end.
размер откомпилированного файла в несколько раз больше чем тот же но без SysUtils
← →
Amoeba (2003-12-02 13:22) [9]Добавлен тот код, который вызывается в разделах Initialozation и Finalization.
← →
Тимохов (2003-12-02 13:24) [10]2tipman
1. Думаю что это легко объяснить. Открывам sysutils. Видим секцию initialization. Там есть определенный код. Наверное именно добавление в код используемых процедур и влечет увеличение результата.
2. Может вы оспариваете способность дельфи не включать в код не используемые процедуры? Тогда это надо доказать. Но думаю без хорошего знания асма это будет сложно.
← →
tipman (2003-12-02 13:38) [11]Amoeba (02.12.03 13:22) [9]
Спасиба! Я сначала написал [8], а тока потом допёр.
т.е. при включении модуля Forms, те самые 300 кб которые добавляются - это всё тоже из раздела initialization! Не очень то както удобно!
т.е. я хочу использовать одну функцию из модуля forms, а delphi мне в ответ на это суёт нехилый раздел initialization, и эту функцию, для которой всё что происходит в initialization вообщем то дофени! Как то тут не додумано!
← →
tipman (2003-12-02 13:41) [12]Ладна! А как насчёт модуля Math? Там нет initialization, a размер приложения увеличивается даже если я не использую ни одной функции!
program pr;
uses Math;
begin
end. ?????????????
← →
Closer (2003-12-02 13:57) [13]1.
Проверить подключение модуля SysUtils можно при помощи редактора ресурсов. В ресурсе PACKAGEINFO указаны какие модули были подключены к проекту при компиляции.
2.
Если у тебя хорошее зрение :)), то ты наверное сможешь увидеть строчкуuses SysUtils;
в модуле Math.
← →
tipman (2003-12-02 14:19) [14]Сенкс! Урубилси! Пояснили доступно!
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.12.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c