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

Вниз

Компиляция   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.037 c
1-1102437749
InfMag
2004-12-07 19:42
2004.12.19
Работа с папками


4-1099393875
Леонид
2004-11-02 14:11
2004.12.19
Перехват сообщения другого приложения


4-1099768006
Wiz@rd
2004-11-06 22:06
2004.12.19
Как убрать бордюр у меню?


1-1101985536
Zif
2004-12-02 14:05
2004.12.19
Удобные сворачивающиеся Begin...end в delphi 8


14-1099581539
olookin
2004-11-04 18:18
2004.12.19
Прогнозы на 5-й тур Лиги Чемпионов