Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
ВнизКомпиляция Найти похожие ветки
← →
PURGEN (2004-12-05 18:03) [0]Существуют ли настройки компилятора, с помощью которых можно уменьшить размер EXE. Например убрать неиспользуемые компоненты и т.п.
← →
Morfein (2004-12-05 18:50) [1]убрать неиспользуемые компоненты - это от тебя зависит. не хочешь - не используй. а ниче лишнего там нет. ну а если что-то считаешь лишним, пиши на ассемблере.
← →
TButton © (2004-12-05 18:51) [2]SysUtils
← →
PURGEN (2004-12-05 18:53) [3]SysUtils ???
Удалить модуль из ЮЗЕС что ли?
← →
Yanis © (2004-12-05 18:54) [4]Assembler - лучше для мужчины(программиста) нет (с).
Не складно, зато правда! :)
← →
begin...end © (2004-12-05 18:55) [5]> [3] PURGEN (05.12.04 18:53)
Конечно, нафиг он нужен.
← →
PURGEN (2004-12-05 18:56) [6]Асемблер конечно штука хорошая! Хочешь в ЕХЕ хочешь обратно в код, но Делфя как-то более по душе....
← →
novice__man (2004-12-05 18:59) [7]Компилятор не включает в исполняемый код не используемые модули.
← →
TButton © (2004-12-05 18:59) [8]
> SysUtils ???
> Удалить модуль из ЮЗЕС что ли?
а ты его пользуешь?
← →
PURGEN (2004-12-05 18:59) [9]
> begin...end © (05.12.04 18:55) [5]
И много сэкономит места....
← →
TButton © (2004-12-05 19:01) [10]
> И много сэкономит места....
процентов 20 если мне не изменяет память *но это если проект чистый*
← →
novice__man (2004-12-05 19:04) [11]Проверил и с SysUtils и без размер *.ехе не изменился :)
← →
begin...end © (2004-12-05 19:04) [12]> [11] novice__man (05.12.04 19:04)
ЧТД
← →
novice__man (2004-12-05 19:07) [13]
begin...end © (05.12.04 19:04) [12]
> [11] novice__man (05.12.04 19:04)
ЧТД
???????? :(
← →
begin...end © (2004-12-05 19:08) [14]> [13] novice__man (05.12.04 19:07)
ЧТД = Что и требовалось доказать :-)
← →
TButton © (2004-12-05 19:08) [15]QED
Quod Erat Demonstrantum
← →
novice__man (2004-12-05 19:13) [16]Не, ну ваще. :))
из анегдота:
"... ну как вам сказать, Ламер Масдаевич?"
← →
Gloomer © (2004-12-06 12:13) [17]
> novice__man (05.12.04 18:59) [7]
> Компилятор не включает в исполняемый код не используемые
> модули.
Были времена, когда я тоже так думал :-(
Сравните скомпеллированный размер следующих программ
перваяprogram Project1;
begin
end.
втораяprogram Project2;
uses Forms;
begin
end.
Без коментариев :-(
Кстати, если посмотреть исходик forms.pas, то видимuses Messages, Windows, SysUtils, Classes, Graphics, Menus, Controls, Imm, ActnList, MultiMon, HelpIntfs;
Так что если есть хоть одна форма, то SysUtils будет присутствовать в ехе-шнике. Вывод - поможет только WinAPI.
← →
Anatoly Podgoretsky © (2004-12-06 12:18) [18]Нет с комментириями, ты используешь много кода из Forms.
Не веришь, тогда посмотри Initialisation
← →
Gloomer © (2004-12-06 12:30) [19]Хорошо, что мешает сделать
program Project2;
uses SysUtils;
begin
end.
Изменение размера все равно есть, хотя, конечно, гораздо меньше.
Я просто высказываюсь против того, что компилятор не включает в используемый код неиспользуемые модули.
Или я неправильно понимаю "неиспользуемые модули", может это не указанные в секции Uses ???
← →
Anatoly Podgoretsky © (2004-12-06 12:35) [20]Точно также используешь, смотри Initialisation
← →
Gloomer © (2004-12-06 12:53) [21]А слона то я и не заметил :-( Ну тогда уж там есть еще и finalization, так же использующий код модуля.
Для уменьшения размера ехе могу еще предложить компелировать в более ранних версиях Delphi со всеми вытекающими последствиями несовместимости версий. А вообще интересно проследить зависимость увеличения размера конечного файла от увеличения версии Delphi, в которой производилась конечная компиляция.
← →
Amoeba © (2004-12-06 14:02) [22]Можно дополнительно уменьшить размер уже откомпилированного приложения за счет удаления таблицы релокаций утилитой StripReloc.
http://www.jrsoftware.org/striprlc.php
StripReloc is a free (GPL license) command line utility that removes the relocation (".reloc") section from Win32 PE EXE files, reducing their size. Most compilers/linkers (including Delphi) put a relocation section in EXE files, but this is actually not necessary since EXEs never get relocated. Hence, a relocation section only wastes space.
This program is designed for developers to run on their own applications" executables only. It is not recommended that you run StripReloc indiscriminately on all EXEs you come across, because certain programs may rely on their internal structure staying intact.
StripReloc will not run on DLLs because they can get relocated, and thus need a relocation section.
EXEs run through StripReloc work on all Windows OSes since Windows 95 and NT 3.51 (at least). Windows 3.1x with Win32s is not supported.
← →
PVOzerski © (2004-12-06 16:51) [23]За счет .reloc много не сэкономишь... Радикальный путь: 1) отказаться от VCL; 2) Если нужно OOP, использовать не классы, о объекты старого образца (там эффективнее отбрасывается "мертвый код" за счет исключения полностью перекрытых виртуальных методов). Именно по этому принципу работает KOL.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.034 c